jQuery для получения контента <td>условно - PullRequest
1 голос
/ 24 августа 2011

С учетом этой таблицы:

<table id="issuetbl">
    <tr> <td>aaaa</td> <td><div>whatever</div></td> <td>cccc</td> </tr> 
    <tr> <td>1111</td><td class="ms-vb"><p>What about rest of line.&nbsp;</p><p>&nbsp;this needs to show uptoo</p></td> <td>2222</td> </tr> 
    <tr> <td>3333</td> <td><div>else</div></td> <td>4444</td> </tr> 
</table>

Этот скрипт jQuery извлекает два тдс после совпадения (здесь 1111) ... по крайней мере, так было до тех пор, пока мы не добавили несколько строк в содержимое.Это теперь только тянет к НБСП.Только возврат: как насчет остальной части строки.

var bodyprefixes = [];
$('#issuetbl td:contains(1111)').nextAll().each(function(i, k) {
    var td = $(k), div = td.children();
    bodyprefixes.push(div.length ? div.html() : td.html());
});
alert(bodyprefixes[0]);
alert(bodyprefixes[1]);

Это хорошее решение от https://stackoverflow.com/users/262056/stephen

Это работает здесь: http://jsfiddle.net/8RvgA/3/

Кто-нибудь знает, как мы можем получить полный тд для1111

Ответы [ 3 ]

0 голосов
/ 24 августа 2011

Если вам не нужны объекты:

bodyprefixes.push(td.text());

Если вы это сделаете, вам придется перебрать всех потомков td

0 голосов
/ 24 августа 2011

Не совсем уверен, что это то, что вы хотите.Но если вы просто хотите, чтобы все данные в той же строке имели td со значением '1111', то это должно сделать: http://jsfiddle.net/rkw79/8RvgA/4/

$('#issuetbl td:contains(1111)').nextAll().each(function(i, k) {
    bodyprefixes.push($(k).text());
});

Использование .text() удалит теги иигнорировать все пробелы

с тегами: http://jsfiddle.net/rkw79/8RvgA/5/

$('#issuetbl td:contains(1111)').nextAll().each(function(i, k) {
    bodyprefixes.push($(k).html());
});
0 голосов
/ 24 августа 2011

Что-то вроде:

$('#issuetbl td:contains(1111)').parent()

... не знаю, если это то, что вы хотите, я просто стреляю в темноте.

...