2

Jquery

我正在尝试更改多个td元素的内部文本,我认为它应该看起来像这样,尽管this在我调试时似乎不是 jquery 对象(我可能是错的)。

这应该做的正确方法是什么?

$('.leg-number').each(function () {
        this.html('foo');
    });
4

3 回答 3

10

也许试试这个:

$('.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)

于 2013-05-24T01:16:52.857 回答
5

阅读each(). this是一个 DOM Html 元素节点,而不是一个 jQuery 对象引用。您可以将其转换回 jQuery 或innerHTML直接使用。

$(this).html('foo');

或者

this.innerHTML = 'foo';

文档显示$(this)在示例中使用。

于 2013-05-24T01:17:17.700 回答
1

改变:

this.html('foo');

至:

$(this).html('foo');

您正在尝试对非 jQuery 对象使用 jQuery 方法。这当然假设您的表格单元格具有 class .leg-number

于 2013-05-24T01:17:15.283 回答