Я не могу объяснить, что я пытаюсь делать словами так же четко, как HTML-код с ожидаемыми результатами. Но подытожить то, что я пытаюсь сделать, это получить все значения параметров элемента аукциона eBay, используя jquery. Для условия Item код jquery даже не вводит div для проверки текста, так как он не нашел никакого текста перед ним.Получить первый видимый текст из нескольких элементов вложенных дочерних элементов в jQuery
Мне было предложено использовать этот код, который не работает должным образом.
$("td").contents().filter(function(){
return this.nodeType == Node.TEXT_NODE;
})[0].nodeValue
В любом случае, здесь приведен код HTML из 3-х предметов.
<td width="50.0%">
<h2 itemprop="brand" itemscope="itemscope" itemtype="http://schema.org/Brand"><span itemprop="name">Unbranded</span></h2>
</td>
<td width="50.0%">
<span>China</span>
</td>
<td width="50.0%">
<!-- ITEM CONDITION -->
<!-- If Attribute is having hidden text/link -->
<div aria-live="polite"> New: <span id="vi-cond-addl-info">A brand-new, unused, unopened, undamaged item in its original packaging (where packaging is </span>
<span id="hiddenContent" class="u-dspn" aria-expanded="false" >
applicable). Packaging should be the same as what is found in a retail store, unless the item is handmade or was packaged by the manufacturer in non-retail packaging, such as an unprinted box or plastic bag. See the seller's listing for full details.<a href="http://pages.ebay.com/help/sell/contextual/condition_1.html" target="_blank" class="infoLink u-nowrap" >
See all condition definitions<b class="g-hdn">- opens in a new window or tab</b></a>
</span>
<!-- TODO: remove hardcoded ID -->
<span id="readFull" class="infoLink u-nowrap">
... <a href="javascript:;">Read more<b class="g-hdn">about the condition</b></a>
</span>
</div>
<!-- </td> -->
</td>
Выходы должны быть:
- Unbranded
- Китай
- новые (Может быть Новое: так как он чувствует себя невозможно)
Найдено решение, которое частично работает только не может понять, как это сделать для каждого td.
var first_line = $("#element")
.contents()
.filter(function() {
return $.trim(this.innerHTML||this.data);
})
.first().text();
Вот моя лучшая попытка, которая не работает
$('td').each(function() {
alert(
$(this).contents()
.filter(function() {
return $.trim(this.innerHTML||this.data);
})
.first()
.text()
);
});
если вы хотите получить текст в определенной таблице, тогда добавьте 'table.className' или 'table # IDtext' – Pradeep
Мне это нравится, потому что я не понимаю в верхнем ответе, почему вам нужно использовать 2 !! (НЕ операторы)? это шутка? и это коротко. – SSpoke