Понастоящем имам следното
<div class ="parent">
<div class="inner">Hello
<div>Goodbye</div>
</div>
</div>
<div class ="parent">
<div class="inner">Hello
<div>Goodbye</div>
</div>
</div>
Понастоящем използвам $(div.parent).each(function(index,item)
да премине през всеки родител, който работи перфектно.
Моят проблем е, че трябва да избера думата здравей. В момента използвам $(item).text()
но винаги се връща HelloGoodBye, което е проблем. Трябва да игнорирам всеки друг div.
Всяка помощ оценявам благодаря.
Отговори:
0 за отговор № 1Опитвам
$("div.parent").not(".parent .inner div").each(function(index,item)
алтернативно
$(div.parent:not(".inner div").each(function(index,item)
1 за отговор № 2
Вместо да използвате jQuery.text()
метод, аз ще препоръча намирането на първата childNode
който ще бъде този текстови код, който търсите:
var divs = document.getElementsByClassName("inner"),
i = 0;
for (i = divs.length; i--;) {
console.log(divs[i].childNodes[0]);
}
ИЛИ
var divs = $(".inner");
divs.each(function() {
console.log(this.childNodes[0]);
});
Имайте предвид, че childNodes
Методът няма да бъде разпознат от jQuery.
0 за отговор № 3
Темата беше обсъдена преди тук с куп подходящи решения: Използване
0 за отговор № 4
Можете да постигнете това, като клонирате всеки елемент, премахнете нежелания div и след това вземете текста.
$("div.parent div.inner").each(function(index,item) {
$this = $(item).clone();
$this = $this.find("div").remove();
$this.text();
});
Ето я скрипт на JS с кода и HTML по-горе в действие: http://jsfiddle.net/L8T7s/