2012-11-11 38 views
2

我需要使用remove();見下的註釋標記表類"form-table"內刪除一個渲染頁面數<tr>行。jQuery:使用remove();爲<tr>行

問題是在渲染頁面(其他表格爲清晰起見未在下面顯示)中有幾個其他表格具有類別「form-table」。其他每個表格都有不同的<h3>標題。

是否可以定位下表中的最後兩個<tr>行,而忽略具有相同類form-table的其他表?這兩個<tr>的目標是否可以使用<h3>Name</h3>指向此表?

即:

jQuery(document).ready(function($){ 
    $("*target <tr>'s here*").remove(); 

    }); 

呈現標記:

<h3>Name</h3> 

<table class="form-table"> 
    <tr> 
     <th><label for="user_login">Username</label></th> 
     <td><input type="text" name="user_login" id="user_login" value="subscriber" disabled="disabled" class="regular-text" /> <span class="description">Usernames cannot be changed.</span></td> 
    </tr> 

<tr> 
    <th><label for="first_name">First Name</label></th> 
    <td><input type="text" name="first_name" id="first_name" value="subscriber" class="regular-text" /></td> 
</tr> 

<tr> 
    <th><label for="last_name">Last Name</label></th> 
    <td><input type="text" name="last_name" id="last_name" value="" class="regular-text" /></td> 
</tr> 

<!-- Need to display:none or remove the two <tr>'s below: --> 

<tr> 
    <th><label for="nickname">Nickname <span class="description">(required)</span></label></th> 
    <td><input type="text" name="nickname" id="nickname" value="subscriber" class="regular-text" /></td> 
</tr> 

<tr> 
    <th><label for="display_name">Display name publicly as</label></th> 
    <td> 
     <select name="display_name" id="display_name"> 
        <option selected='selected'>subscriber</option> 
       </select> 
    </td> 
</tr> 

<!-- Need to display:none or remove the two <tr>'s above: --> 

</table> 
+0

請注意,(取決於你如何定位你的'tr'的),這可能不是在的Webkit由於'插入工作tbody'標籤。 – ahren

+0

@ahren只要你指定'tr's作爲後代而不是孩子,那就不應該有什麼問題。 –

+0

這是一個比任何警告更多,並注意:*取決於你如何瞄準你的'tr's * – ahren

回答

1

可以使用:firstnth-child()功能靶向特定的表,則可以使用gt()函數來指定所有的TR大於2

例1:

// assuming that your target table is the first one among the other tables with the same class 
var myTable = $("h3 :first").next(".form-table").find("tr:gt(2)").remove() 

例2:

// assuming that your target table's h3 has the text "Name" inside 

var myTable = $("h3:contains('Name')").next(".form-table").find("tr:gt(2)").remove() 
+0

@Asad:抱歉,修正。 –

+0

@Mohammed ElSayed:謝謝!這很好,在Webkit中也是如此。我發佈了另一個關於按標籤定位tr的相關問題。 – markratledge

2

如何:

$('h3:contains("Name") + table tr:gt(2)') 

或者

$('h3:contains("Name")').next().find('tr:gt(2)') 

編輯:

演示:http://jsfiddle.net/kMYY3/1/

+0

謝謝! @Mohammed ElSayed就在他的回答之前幾分鐘。 - 馬克 – markratledge

+0

@songdogtech沒關係,但我實際上是第一個有正確答案的人,並糾正了其他人,這是錯誤的。 –

+0

我知道;我分開了差異,並給了你一些提升。 – markratledge