2012-02-13 16 views
-1

$('#flashObj').append();を使用して、以下のコードで「append_HERE」と言う2つの領域にテキストを追加するにはどうすればよいですか?jquery append要素

編集:文字列として変数に格納していて、そのように値を変更したい場合はどうすればよいですか?

var flashLayout = '<div id="flashObj">'+ 
    '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="200" height="20">'+ 
     '<param name="movie" value="dbs/js/singlemp3player.swf?file=append_HERE.mp3&autoStart=false&backColor=000000&frontColor=ffffff&songVolume=90" />'+ 
     '<param name="wmode" value="transparent" />'+ 
     '<embed wmode="transparent" width="200" height="20" src="dbs/js/singlemp3player.swf?file=append_HERE.mp3&autoStart=false&backColor=000000&frontColor=ffffff&songVolume=90" type="application/x-shockwave-flash" />'+ 
    '</object></div>' 
+0

ああ! [jQuery API](http://api.jquery.com/append) – elclanrs

答えて

0

のJavascript(jQueryのとは)DOMノード(オブジェクトなどの要素)が 'テキスト' で動作します。

var f = $('#flashObj'); 
f.html(f.html().replace('append_HERE', 'append_HERE_the_new_stuff')); 

をそれとも、より良いあなたがテキストとしてHTMLで遊んで避けるべきで、代わりに属性自体を変更:

次のいずれかのHTMLテキストとしてそのコードを取得し、通常の文字列操作を行うので、同様に置き換えることができます:

var f = $('#flashObj param:first'); 
f.attr('value', f.attr('value').replace('append_HERE', 'append_HERE_the_new_stuff')); 

var f = $('#flashObj embed'); 
f.attr('src', f.attr('src').replace('append_HERE', 'append_HERE_the_new_stuff')); 

PS:あなたはおそらくだろう"bar bar".replace("bar", "foo")'foo bar'を返すので、正規表現を使用してグローバル置換を実行する必要があります。

0

あなたは

追記この記事を見て...その目的のためにメンターされていない...ということはしないだろう。

object, param, jquery

それは

を助けるかもしれません
2

属性値の操作にはappend()メソッドを使用しません。 attrメソッドを使用して、属性値を取得および設定してみてください。

これを試してください。

var $embed = $('#flashObj embed'); 
var $paramMovie = $('#flashObj param[name=movie]'); 
$embed.attr('src', $embed.attr('src') 
        .replace('append_HERE', 'yourTextGoesHere')); 
$paramMovie.attr('value', $paramMovie.attr('value') 
         .replace('append_HERE', 'yourTextGoesHere')); 
+1

ハァッ?なぜあなたはparamMoveから映画要素を除いているのですか(それは存在しません)?また、なぜ変更する必要がある値である場合、 'name'属性の内容を置き換えるのですか? – Christian

+0

@ChristianSciberras - これは入力中に見逃しましたが、ありがとうございました。それを修正しました、ダウン投票を削除するように気をつけますか? – ShankarSangoli

+0

修正済み:) – ShankarSangoli

0

ここのappend()メソッドは、実際には要素をオブジェクト要素に追加するだけでは役に立ちません。おそらくhtml()のようなものを使用したいと思うでしょう。

0

私が間違っていると誰かが私を修正してくれると確信していますが、誤って追加機能を使用しようとしていると思います。私は何かの最後にのテキストやマークアップを使用し、途中に挿入しないでください。

私はあなたのコードにはよく分からないが、私はよりよい解決策は、jQueryのattrの()関数$('param').attr('value','the value you need')などを使用して、あなたのjavascriptのコードであなたの要素を構築することだと思う...

は、この情報がお役に立てば幸い!

ジェームズ

0

append()は、テキストを置き換えるのに役立つわけではありません。また、コンセプト全体は、とにかく動作しません。 DOMからオブジェクトと埋め込みを削除し、それらを新しい値で再作成し、再度挿入する必要があります(append()はその場合に役立ちます)

0

あなたはそのために.append()を使用しません。 あなたはそれをこのように行うことができます(ない最もエレガントなコードを、しかし、うまく動作するはずです):

var param = $("#flashObj").children("object").children("param").filter("[name='movie']") 
var embed = $("#flashObj").children("object").children("embed") 

//Change the value on the <param> 
param.val(param.val().replace("append_HERE", "New Value Goes Here")); 

//Change the value on the <embed> 
embed.attr("src", embed.attr("src").replace("append_HERE", "New Value Goes Here")); 

はちょうどあなたが挿入しようとしているもので、「新しい価値をここに」交換してください。