自定义行的jquery add事件不起作用

时间:2016-11-04 08:16:11

标签: javascript jquery

我正在尝试仅将click事件添加到第一列中包含一些文本的行中的列。 对于第一行,单击事件应隐藏包含" 1 /"的行。在第一列。 这是我的html表:

Sub New_Characterisation()

Application.ScreenUpdating = False
Application.EnableEvents = False

Worksheets("Characterisation").Activate
Range("B15:W15").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Application.CutCopyMode = False

Range("B15:W15").Select
Selection.ClearContents
Selection.Interior.ColorIndex = xlNone
Selection.Borders.LineStyle = xlContinuous

Range("B15") = Range("B16") + 1

Application.EnableEvents = True
Application.ScreenUpdating = True

End Sub

这是我用于添加事件的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代码吗?

3 个答案:

答案 0 :(得分: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");
});

答案 1 :(得分: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");
     });

答案 2 :(得分: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");
});