Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery第n个子项的行为异常_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript jQuery第n个子项的行为异常

Javascript jQuery第n个子项的行为异常,javascript,jquery,html,css,Javascript,Jquery,Html,Css,所以,我正试图让这段代码正常工作: // Home status history handler $('div.rel-wrap table tr').on('click', function(){ // gets the relevid from the table var relevrow = $(this).closest('tr'); // assigns the id to a variable relevid = relevrow.children('th

所以,我正试图让这段代码正常工作:

// Home status history handler
    $('div.rel-wrap table tr').on('click', function(){

// gets the relevid from the table
    var relevrow = $(this).closest('tr');

// assigns the id to a variable
    relevid = relevrow.children('th').text();

// fills the details panel
    $('#detalles span:eq(0)').html(' ' + relevrow.children('th').html());
    $('#detalles span:eq(1)').html(' ' + relevrow.children('td:nth-child(2)').text());   
    $('#detalles span:eq(2)').html(' ' + relevrow.children('td:nth-child(3)').text()); 
    $('#detalles span:eq(3)').html(' ' + relevrow.children('td:nth-child(4)').text());
    $('#detalles span:eq(4)').html(' ' + relevrow.children('td:nth-child(12)').text());
    $('#detalles span:eq(5)').html(' ' + relevrow.children('td:nth-child(13)').text());

detailspanelhandler('view', relevid);
});
我从一个表中获取数据,并使用从中获取的数据(使用函数等)进行处理。那部分没问题

然而,我还试图在下面的单独面板中显示表中的一些数据。span:eq()可以正确选择所需文本必须位于的范围,并且第n个子项2到4可以正确显示。但一旦我到达12和13(跳转是故意的,我不会在那里遗漏代码),第n个子伪选择器就会开始不规则地运行

如果我这样做

console.log(relevrow.children('td:nth-child(12)').text());
console.log(relevrow.children('td:nth-child(13)').text());
…它在控制台中显示正确的信息。但是,当我试图通过.html(如上所示)将其分配给span时,它不会显示该信息。相反,它显示的似乎是一个随机选择。例如,如果我将第n个子对象(12)指定给两个跨度,一个显示一个,另一个显示另一个。是同一个孩子!但在控制台中,一切正常,每次都有正确的数据

有什么想法会把我的代码弄乱吗?我似乎找不到要调试的模式

值得注意的是,不管span最终显示的数据是什么,每次单击和刷新时都是相同的。它从第n个子选择器中选择的任何数据总是相同的。只是我无法看到或预测它将从何而来

如果我对某事不清楚,请随时要求我澄清。这是我在这里的第一个问题,请对我放松点!=)

[编辑]:这里有一个关于这个bug的jsfiddle。检查控制台以查看不一致性


#detalles
中只有五个
span
元素,但是脚本试图通过
:eq()
访问
0
5


原来是修改现有代码时引入的一个简单错误。

请设置一个,包括查看代码实际功能所需的HTML。因此,您在一行中获得了
th
td
元素?然后不要将第n个子元素与第n个元素混淆…哦。。。嗯,这需要一些时间来复制。。。我正在研究一个非常复杂的系统。我很难想出一个最小的、完整的、可验证的例子。不过我会努力的。谢谢你的提醒,我不知道这是必须的!每个里面都有一个和一个。在我的例子中,我要查找的数据在s中(和上,但该数据被正确检索)。第n个子元素和第n个td元素之间有什么区别?到目前为止,在代码的其他部分,我一直在交替使用它,并取得了良好的效果!表的代码,以及#detalles包含的内容基本上应该是什么,不是吗?从浏览器的“源代码”视图中复制并粘贴这两个代码,添加上面的代码-除了未知的
detailspanelhandler
函数可能做的事情之外,这些代码似乎非常独立-如果您将其放入JSFIDLE或codepen并添加jQuery,您应该只需要对一个可运行的示例进行一些调整,该示例可以帮助我们重现正在发生的事情。相对于
div.rel-wrap表
,它在同一个表中吗?听起来好像将新内容添加到
#detalles
中改变了
td:n子项
索引以供后续查找。