2010-06-29 2 views
2

У меня есть следующие структуры таблицыJQuery цикл по каждой строке таблицы

<table class="ms-listviewtable> 
<tr> 
<td class="ms-vb2-icon"/> 
<td class="ms-vb2"/> 
<td class="ms-vb2"/> 
<td class="ms-vb2"/> 
<td class="ms-vb2"/> 
<td class="ms-vb2">test1</td> 
</tr> 
<tr> 
<td class="ms-vb2-icon"/> 
<td class="ms-vb2"/> 
<td class="ms-vb2"/> 
<td class="ms-vb2"/> 
<td class="ms-vb2"/> 
<td class="ms-vb2">test2</td> 
</tr> 
<tr> 
<td class="ms-vb2-icon"/> 
<td class="ms-vb2"/> 
<td class="ms-vb2"/> 
<td class="ms-vb2"/> 
<td class="ms-vb2"/> 
<td class="ms-vb2">test3</td> 
</tr> 
</table> 

мне нужна цикл по каждой строке затем петля через каждый тд и проверить, если TD в строке содержит текст «test1», если так Мне нужно скрыть td с классом ms-vb2-icon в той же строке.

Может кто-нибудь, пожалуйста, дайте мне несколько указателей?

ответ

4

Вы можете сделать это следующим образом:

$("tr:has(td:contains('test1')) td.ms-vb2-icon").hide(); 

You can test the code against your markup here

Это использует :contains(), чтобы увидеть, если <td> содержит этот текст, завернутые в :has(), чтобы увидеть, если <tr> имеет элемент, соответствующий этому, в следующем мы находим td.ms-vb2-icon ячейка в сопоставленных строках и спрятать их.

+0

Большое спасибо за ваше объяснение. Я вижу, как он работает на скрипке. Просто не уверен, почему он скрывает td во всех строках в моей веб-части, если только структура таблицы html, которую я вижу в панели инструментов разработчика IE, не совпадает с созданным кодом html .... – van

+0

@nav - мне пришлось исправить ваша разметка немного в скрипке, например '' не может быть самозакрывающейся, а '

' '' '' '' элементам требуется закрывающая цитата. Удостоверьтесь, что ваша фактическая разметка действительна, проверив ее здесь: http://validator.w3.org/ –

+0

Спасибо, Ник, я вставил фактическую разметку в скрипт. Http://jsfiddle.net/QUvYW/ – van

Смежные вопросы