如何使用 JQuery 获取 HTML 表格单元格文本值?

5

当单击该行时,我成功地使用以下代码获取了一行中的单元格集合:

$('.NamesGridClass tbody tr').bind('click', function() {
    var ch = $(this).children();
    alert(ch[0] + ' ' + ch[1]);
});

上面的代码片段成功地显示了:
[object HTMLTableCellElement] [object HTMLTableCellElement]
我尝试使用 ch[0].html()、ch[0].val()、ch[0].text() 并且得到了错误。请问如何获取这里单元格的内容?
3个回答

6
请使用本地代码。
ch[0].innerHTML

1
这是一个带有jquery标签的问题,因此建议OP使用原生语言似乎不合适。是的,你的“答案”有效,但它并没有帮助OP理解他试图做什么的原因。 - Derek Henderson
因为jQuery的.html()使用相同的方法。 - z1m.in
1
加上一些杂项以确保跨浏览器兼容性。.innerHTML更快;.html()更安全。 - Derek Henderson

6
为了使用.html(),你需要将这些对象转换为jQuery对象:
$(ch[0]).html()

同样适用于您想要应用的任何其他有效的jQuery方法。

2
@jQuery00,是的,当然,这样做的效果相同,而且字符更少。但重点是.html()只适用于jQuery对象。ch$(ch[0])都是jQuery对象;而ch[0]则不是。 - Derek Henderson

2
当您从jQuery获取一个数组中的元素时,您会得到普通的JavaScript元素,而不是jQuery元素。您可以使用JavaScript的.innerHTML或使用jQuery选择器双层包装该值。我建议使用.innerHTML,因为它更简单。
$('.NamesGridClass tbody tr').bind('click', function() {
        var ch = $(this).children();
        alert(ch[0].innerHTML + ' ' + ch[1].innerHTML);
    });

我会对那个建议保持谨慎。如果 OP 必须支持旧版浏览器,使用 .html() 更安全。 - Derek Henderson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接