2014-10-27 25 views
1

我有這樣的代碼:如何選擇tr並在此塊中搜索文本?

<table id="ts_res_tbl" class="vToolsDataTable"> 
<thead> 
<tr> 
<th class="sortable">Number</th> 
</th> 
</tr> 
</thead> 
<tbody> 
<tr class="vToolsDataTableRow2"><td class="num"><a>574</a><div>... 
<tr class="vToolsDataTableRow2"><td class="num"><a>575</a><div>... 
<tr class="vToolsDataTableRow2"><td class="num"><a>576</a><div>... 

上千值...

我需要選擇具有「575」文本TR,我怎麼可以這樣使用Javascript? JQuery我不會用!

並選擇選擇後,我將有以下代碼:

<tr class="vToolsDataTableRow"> 
    <td class="num"> 
    <a>072 П</a> 
     <div></div> 
    </td> 
    <td class="stations">Text 1<br>Text</td> 
    <td class="date"> 
    <div>Text <span>Text, 28.10.2014</span></div> 
    <p class="clear"></p> 
    <div>Text<span>Text, 29.10.2014</span></div> 
    <p class="clear"></p> 
    </td> 
    <td class="time">19:27<br>05:58</td> 
    <td class="dur">10:31</td> 
    <td class="place"> 
    <div title="Text"> 
     <i class="" style="margin-left: 0px;">X</i> 

然後,我需要找到一個字母「X」標記之間,怎麼可以做什麼?

+0

jQuery是JavaScript(儘管我懷疑你的意思是說你根本不想使用那個庫?)。但是......最終結果與搜索字符串有什麼關係? – 2014-10-27 10:04:10

+0

只需使用xpath即可。 – PeeHaa 2014-10-27 10:06:18

回答

0
<style type="text/css"> 
    tr.selected { 
     background-color: #F00; 
    } 

</style> 
<script type="text/javascript"> 

    function search(table, value) { 
     var Rows = table.getElementsByClassName('vToolsDataTableRow2'); 

     for(var i = 0; i < Rows.length; i++) { 
      var N = Rows[i].getElementsByClassName('num'); 
      if(N.length == 0) continue; 


      var A = N[0].getElementsByTagName('a'); 
      if(A.length == 0) continue; 

      var v = A[0].innerHTML; 

      if(v.toString() == value.toString()) { 
       Rows[i].className = 'vToolsDataTableRow2 selected'; 
      } 
      else 
      { 
       Rows[i].className = 'vToolsDataTableRow2'; 
      } 
     } 
    } 

    search(document.getElementById('ts_res_tbl'), 575); 

</script>