Jquery
我正在尝试更改多个td
元素的内部文本,我认为它应该看起来像这样,尽管this
在我调试时似乎不是 jquery 对象(我可能是错的)。
这应该做的正确方法是什么?
$('.leg-number').each(function () {
this.html('foo');
});
Jquery
我正在尝试更改多个td
元素的内部文本,我认为它应该看起来像这样,尽管this
在我调试时似乎不是 jquery 对象(我可能是错的)。
这应该做的正确方法是什么?
$('.leg-number').each(function () {
this.html('foo');
});
也许试试这个:
$('.leg-number').html('foo');
这是实现目标的一种更短、更有效的方法。它只是要求 jQuery 将每个具有类“leg-number”的元素的内部 html 设置为“foo”,而无需任何显式迭代。大多数 jQuery 方法.html()
都可以在元素集上工作,所以你真的不需要在.each()
像这样的简单情况下使用。
现在谈谈为什么您的版本不起作用:如果您使用 jQuery 函数进行.each()
包装,那么 Using 将起作用,这样您就可以在其上使用 jQuery 方法:this
$()
$('.leg-number').each(function () {
$(this).html('foo');
});
回调this
内部的变量是一个 DOM 元素,您需要将其转换为包装该元素的 jQuery 对象。在我更新答案之前,请参阅 epascarello 的答案中的解释。.each()
$(this)
阅读each()
. this
是一个 DOM Html 元素节点,而不是一个 jQuery 对象引用。您可以将其转换回 jQuery 或innerHTML
直接使用。
$(this).html('foo');
或者
this.innerHTML = 'foo';
文档显示$(this)
在示例中使用。
改变:
this.html('foo');
至:
$(this).html('foo');
您正在尝试对非 jQuery 对象使用 jQuery 方法。这当然假设您的表格单元格具有 class .leg-number
。