0

次のようなスパンタグがあります。

<span class="myClass">Lorem ipsum</span>

(javascript関数呼び出しの)innerText値を参照する属性を追加したいと思います。次のようになります。

<span class="myClass" data-bind="click: function(data, event) { myFunction('Lorem ipsum') }">Lorem ipsum</span>

span myClassのスパンを含むテキストの段落を動的に解析し、プログラムで属性を追加できるようにしたい。そのため、innerTextが「Sed」の場合、myFunctionの引数は「Sed」になります。

私はこれを作成するために次のことを試みました:

jquery(container).find('.myClass').attr('data-bind', 'click: function(data, event) { myFunction(' + $(this).text() + ')}');

うまくいきませんでした。(関数の引数は空でした。.html()「null」を出力しようとしています。)

jQueryでこのようなことを達成する方法を知っている人はいますか?$(this)問題のオブジェクトを指していないので、私の問題はキーワードだと思います。使用できる別のキーワードがあるかどうかわかりません...

ありがとうございました!

編集:おっと、コードを少し難読化しようとしましたが、最後の行でそれを行うのを忘れました。ご迷惑をおかけして申し訳ありません。

4

3 に答える 3

2

$(this)は要素ではないため、コードは機能しません。

試す:

jquery(container).find('.nonGlossaryKeyword').each(function(){
   $(this).attr('data-bind', 'click: function(data, event) { showNonGlossaryModal(' + $(this).text() + ')}');
});

この場合、$(this)は、forループのように、すべての.nonGlassorayKeyword要素を繰り返し処理します。

于 2012-06-06T20:42:27.967 に答える
0

はい、現時点でのキーワード「this」はコンテナを指します。私はあなたができると思います:

var spans = jQuery(container).find('span');  //all spans
jQuery.each(spans,function(i,ele){
     var text = jQuery(ele).text();
     jQuery(ele).attr('data-bind','click: function(data, event) { myFunction("'+text+'")}');
});
于 2012-06-06T20:50:57.167 に答える
0

意味は:

jQuery(".myClass") // or $(".myClass")

それ以外の

jquery(container).find('.nonGlossaryKeyword')
于 2012-06-06T20:41:22.670 に答える