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。