【发布时间】:2012-06-07 04:52:58
【问题描述】:
我有一个如下所示的 span 标签:
<span class="myClass">Lorem ipsum</span>
我想为它添加一个引用 innerText 值的属性(用于 javascript 函数调用),我希望它看起来像这样:
<span class="myClass" data-bind="click: function(data, event) { myFunction('Lorem ipsum') }">Lorem ipsum</span>
我希望能够动态解析一段包含跨度 myClass 的文本,并以编程方式添加属性。因此,如果我的 innerText 是“Sed”,则 myFunction 的参数将是“Sed”。
我尝试了以下方法来产生这个:
jquery(container).find('.myClass').attr('data-bind', 'click: function(data, event) { myFunction(' + $(this).text() + ')}');
没有用。 (函数参数为空。尝试.html() 输出“null”。)
有谁知道如何在 jQuery 中完成这样的事情?我相信我的问题是 $(this) 关键字,因为它没有指向有问题的对象。我不确定是否还有其他关键字可以使用...
谢谢!
编辑:哎呀,我试图混淆我的代码,但忘了在最后一行做。如有任何混淆,请见谅。
【问题讨论】:
-
data-属性应该包含静态数据,而不是动态函数。此外,为什么要添加代码来引用 innerText 值,而不仅仅是...引用 innerText 值? -
nonGlossaryKeyword 类指向什么?
-
@Larry - 见编辑。我正在开发一个公司项目,我认为通用化我的代码是明智之举,但我忘了在最后一行这样做。
-
@Blazemonger - 我正在使用 knockout.js 进行数据绑定;就它而言,点击绑定是静态的。但是,如果有更好的方法来引用 innerText 而不使用此方法,我会很高兴听到它。
-
这完全取决于你想对文本做什么。我不熟悉淘汰赛,但将它与 jQuery 混合可能是不必要的。在我能想到的任何情况下,最好创建一个通用的
$('.myClass').on('click',function() {...});事件处理程序,它将检索$(this).text()并根据需要对其进行处理。
标签: jquery knockout.js