2012-04-02 71 views
1

我有以下HTMLjQuery的:基於多個屬性

<tr id="r1" class="l1"> 
       <td><img class="plusminus" id="r1c1" src="assets/images/plus.png" border="0" />3/10/12</td> 
       <td></td> 
       <td></td> 
       <td>4,449,371</td> 
       <td>27,399</td> 
       <td>$500,000</td> 
       <td>8.91%</td> 
       <td>0.68%</td> 
       <td>0.62%</td> 
       <td>$0.04</td> 
       <td>791</td> 
       <td>2.8%</td> 
       <td>$1.39</td> 
      </tr> 
      <tr id="r11" class="l2"> 
       <td></td> 
       <td></td> 
       <td>iPad Winner</td> 
       <td>700,302</td> 
       <td>2,472</td> 
       <td>98.88</td> 
       <td>8.07%</td> 
       <td>0.68%</td> 
       <td>0.62%</td> 
       <td>$0.04</td> 
       <td>791</td> 
       <td>2.8%</td> 
       <td>$1.39</td> 
      </tr> 
      <tr id="r12" class="l2"> 
       <td></td> 
       <td></td> 
       <td>iPad Winner2</td> 
       <td>300,302</td> 
       <td>2,472</td> 
       <td>98.88</td> 
       <td>8.07%</td> 
       <td>0.68%</td> 
       <td>0.62%</td> 
       <td>$0.04</td> 
       <td>791</td> 
       <td>2.8%</td> 
       <td>$1.39</td> 
      </tr> 

     <tr id="r2" class="l1"> 
       <td><img class="plusminus" id="r2c1" src="assets/images/plus.png" border="0" />4/10/12</td> 
       <td></td> 
       <td></td> 
       <td>4,4555,55</td> 
       <td>27,399</td> 
       <td>$500,000</td> 
       <td>8.91%</td> 
       <td>0.68%</td> 
       <td>0.62%</td> 
       <td>$0.04</td> 
       <td>791</td> 
       <td>2.8%</td> 
       <td>$1.39</td> 
      </tr> 

<tr id="r21" class="l2"> 
       <td><img class="plusminus" id="r2c1" src="assets/images/plus.png" border="0" />4/10/12</td> 
       <td></td> 
       <td></td> 
       <td>4,4555,55</td> 
       <td>27,399</td> 
       <td>$500,000</td> 
       <td>8.91%</td> 
       <td>0.68%</td> 
       <td>0.62%</td> 
       <td>$0.04</td> 
       <td>791</td> 
       <td>2.8%</td> 
       <td>$1.39</td> 
      </tr> 

這裏選擇元素R1是父行,而R11,* R12 *是子行,家長有類裏,而孩子們有l2。我使用的ID = R1的點擊事件後jQuery的所有subsquent IDS R1是和有階級L2

var pattern = 'r1';//just for example here 
$('tr[id|="'+pattern+'"][class=l2]') 

我需要根據ID的過濾結果匹配模式,有類= L2。我怎樣才能做到這一點?

由於提前

+1

對我來說沒關係。你有什麼問題嗎?你可能也想把'l2'放在引號中。或者更好,只需使用類選擇器:'$('tr.l2 [...]')'。 – 2012-04-02 00:23:48

回答

2

編輯 這應該做的伎倆:

var pattern = 'r1';//just for example here 
$('tr[id^="'+pattern+'"][class=l2]') 

,因爲你用你的選擇不工作「| =」相匹配的前綴後面「 - 」 。所以如果你的子行的命名約定是r1-1,那麼選擇器本來就是好的。您需要使用'^ ='來選擇以指定字符串開頭的屬性。

我個人,而不必在子行的ID,只需指定一個父ID作爲子行一類 - 這使事情變得簡單一點,以便ID的所有子= R1是這樣的

<tr id="r1" class="l1"><td>I am a parent row</td></tr> 
<tr class="l2 r1"><td>I am a child row of r1</td></tr> 

當用戶點擊父行,我會做這個

$(".l1").click(function(){ 
var sel = $(this).attr("id"); 
var children = $("table").find("." + sel) 

}) 

但是這是個人喜好的問題,以便選擇子行。

+0

我最終在每個級別上分配多個類,如** l2 r1 **第一行,** l2 r2 **第二個,等等,然後調用基於類的選擇器。我非常喜歡你的實現。將來會有幫助 – Volatil3 2012-04-02 18:52:08

0
$('id|=["' + pattern + '"] > .l2') 

這意味着:給我所有兒童類ID與模式

編輯前綴父母的.L2:對不起,注意到你正在尋找的前綴,更新的代碼。