2016-11-04 50 views
0

我试图将点击事件只添加到在第一列有一些文本的行中的列。 对于第一行,单击事件应该隐藏第一列中包含“1 /”的行。 这里是我的HTML表格:jquery为自定义行添加事件不起作用

<table class="results"> 
<tr> 
<td>1</td> 
<td>Distribution_Approval_Archive_WorkFLow</td> 
<td>0h:2m:59s:845ms</td> 
<td><font color="red">TestFail</font></td> 
</tr> 

<tr> 
<td>1/1</td> 
<td>MyLogin</td> 
<td>0h:0m:8s:298ms</td> 
<td><font color="green">TestCasePass</font></td> 
</tr> 

<tr> 
<td>1/2</td> 
<td>OpenEFlowEnterprise</td> 
<td>0h:0m:13s:912ms</td> 
<td><font color="green">TestCasePass</font></td> 
</tr> 

<tr> 
<td>2</td> 
<td>Distribution_Approval_Archive_WorkFLow</td> 
<td>0h:2m:59s:845ms</td> 
<td><font color="red">TestFail</font></td> 
</tr> 

<tr> 
<td>2/1</td> 
<td>MyVismaLogin</td> 
<td>0h:0m:6s:223ms</td> 
<td><font color="green">TestCasePass</font></td> 
</tr> 

<tr> 
<td>2/2</td> 
<td>OpenEFlowEnterprise</td> 
<td>0h:0m:5s:158ms</td> 
<td><font color="green">TestCasePass</font></td> 
</tr> 

</table> 

这里是我的jQuery添加事件:

for (i=1; i <= $(".results td:nth-child(1):not(:contains('/'))").parent().length; i++){ 
    $($(".results td:nth-child(1):not(:contains('/'))").parent()[i-1]).children().click(function(){ 
     $('.results td:nth-child(1):contains("'+ i +'/")').parent().slideToggle("fast"); 
    }) 
} 

你帮助解决问题的jQuery代码?在循环

+0

我m不知道'.parent()'会返回多于1个元素。 – putvande

+0

parent()仅从评估选择器的每个元素返回一个元素;但是,循环是问题 – danginkgo

回答

1

决不绑定的事件,请尝试以下

$('tr').find('td:first-child()').not(':contains("/")').parent().click(function(e){ 
    var index = $(this).find('td:first-child()').text().split('/')[0]; 
    $('td:contains("'+index+'/")').parent().slideToggle("fast"); 
}); 
+0

感谢您的帮助 - 很高兴知道我无法在循环中绑定事件。我尝试了代码,但点击也被添加到所有行。 – danginkgo

+0

你的意思是什么不起作用? https://jsfiddle.net/s7fvykee/ – madalinivascu

+0

你检查了我的jsfiddle吗? – madalinivascu

0

您可以代码:

$(".results td:nth-child(1):not(:contains('/'))").on("click", function(){ 
     var i = $(this).text().split('/')[0]; 
     $('.results td:nth-child(1):contains("'+ i +'/")').parent().slideToggle("fast"); 
    }); 
+0

这似乎没有做任何事情https://jsfiddle.net/k23xk19h/ – madalinivascu

+0

你可以看到http://jsbin.com/cofucoqapi/edit?html,console,output –

+0

似乎没有工作:)) – madalinivascu

0

最后的代码,我用这个(http://jsfiddle.net/danginkgo/jr5qvqj3/):

$('.results tr td:first-child:not(:contains("/"))').parent().click(function(){ 
    var i = $.trim($(this).find('td:first-child').text().split('/')[0]); 
    $('.results td:first-child:contains("'+ i +'/")').parent().slideToggle("fast"); 
});