javascript - 从 .each 返回的“未定义”在 tr 上运行并选择了 id

标签 javascript jquery html-table each

问题

我试图遍历表中具有特定格式 id 的每一行。选择了正确的行数,但每当我尝试从 obj 获取属性时,都会遇到'未定义'问题。

<tr class="" data-uid="45" id="fixed_user_45">...

还有 JavaScript...

$('tr[id^="fixed_user_"] ').each(function(obj, i) {

var id = $(obj).id; // returns 'undefined'
console.log(id); //prints 'undefined' the correct number of times

});

无论我尝试选择哪个属性以及如何处理它,即innerText、innerHTML、.attr('data-uid'),都会发生这种情况。全部都是未定义的。

<小时/> 其他详细信息:

为了完整起见...我将在上面的每个函数中嵌套以下内容后循环遍历每个 td。

$('td').each(function (obj, i) {

<小时/> 感谢大家的帮助。

最佳答案

在 JavaScript 代码片段中,您的参数顺序错误

.each(function(obj, i) {

正确的顺序是

.each(function(i, obj) {

然后你必须调用 jQuery .attr() 函数来获取 id。

$(obj).attr('id')

但是,您可以不获取任何参数(如果不需要索引)并使用 this 作为当前对象。

$(this).attr('id');

要查看它的工作情况,请转到此 jsfiddle https://jsfiddle.net/zv6guhzn/1/ 如果您想循环嵌套 td,我建议使用 .find() ,它比一般选择器 $() 更快,因为它从选定的位置开始搜索嵌套元素。

$(obj).find('td').each(itd, objtd){
    console.log( $(objtd).text() );
}

带有嵌套循环的完整示例 https://jsfiddle.net/zv6guhzn/2/

来源https://api.jquery.com/each/#example-2

关于javascript - 从 .each 返回的“未定义”在 tr 上运行并选择了 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34828569/

相关文章:

javascript - 在参数 ASP.NET 中传递列表 javascript

javascript - Chrome 的 JavaScript 控制台是否懒惰评估对象?

javascript - 无法在 jquery read() 中找到先前插入的元素

jquery - 遍历一个表,按类查找 td 并更改该 td 的文本

javascript - 分页 API 过滤后的 axios 结果数组为空

jQuery if 语句 - 它可以先执行(还是必须 if 执行在事件之后)?

php - jQuery 出现意外 token 错误

javascript - JQuery tablesorter,<table> in <table>(嵌套表)

html - 创建两个表,中间有空格

javascript - JQuery 对结果的长度进行四舍五入