2013-10-09 46 views
0

我正在查找902 td表中的元素,並找到.row類的標題屬性等於json對象值。查找與json值匹配的標題

表看起來是這樣的

<div id="site_relationship_id_tbdd"> 
    <table class="tbd-table"> 
     <tbody> 
      <tr class="header"> 
      ... 
      </tr> 
      <tr class="row"> 
       <td title = "1"></td> // This value increments for each parent tr element. 
       <td title="SomeTitle"></td> 
       <td title="someJazz"></td> 
      </tr> 
      ... 901 more of these .... 
     </tbody> 
    </table> 
</div> 

我已經回來的JSON值是:

[{"site_id":"148"}] 

和我有什麼jQuery的到目前爲止是:$('#site_relationship_id_tbdd .tbdd-drop .row').find('td') 而一直有用的找到我tr內的所有td元素。

我想要做的就是找到一個td元素誰的title="148"然後添加.selected到父tr,所以它看起來像:<tr class="row selected>

想法?

回答

0

您也可以將它與屬性相結合。

$('#site_relationship_id_tbdd .tbdd-drop .row').find('td[title="148"]') 
             .closest('tr') 
             .addClass('selected'); 

如果您有多個的siteId這樣的陣列中,那麼你可以嘗試:

var ids = [{"site_id":"1"}, {"site_id":"2"}, {"site_id":"148"}]; 
//create the selector 
var selector = ids.map(function(o){ 
    return "td[title=" + o['site_id'] + "]"; 
}).join(','); 

var $elem = $('#site_relationship_id_tbdd .tbd-table .row') 
         .find(selector) 
         .closest('tr') 
         .addClass('selected'); 
+0

我應該提到 - 我只是發現了 - 這隻能說明5在同一時間所以在你只能看到5個TD的源代碼,然後你可以通過另外5個等等進行分頁......源代碼沒有其他隱藏它只是更新了5個現有TR的 – LogicLooking

+0

@LogicLooking是的,你不能對DOM中沒有的東西做任何事情。但是,這個答案給了你一些見解,以避免所有這些tds的循環? – PSL