2017-02-19 3 views
0

это может быть довольно нуб, но есть такой сценарий, в котором я не могу выяснить, селектор JQuery мне нужно .... Итак, пусть HTML быть какКакой селектор jquery следует использовать для получения анонимного дочернего элемента?

<span style="color:red;">Gender:</span>Drama<br> 
<span style="color:red;">Country:</span>USA<br> 

Что JQuery селектор следует использовать для получить «Драма»? Заранее спасибо

+1

С "Драма" не является 'HTMLElement', тебе понадобится https://api.jquery.com/contents/ – haim770

+0

Вы можете найти ответ [здесь] (http://stackoverflow.com/questions/6388507/use-jquery-to-select-text-not-in-an-element) – tkhuynh

ответ

1

Сначала вам нужно идентифицировать элемент <span>, а затем получить текстовый узел сразу после него. Поскольку элементы span не имеют ничего уникального, вы можете использовать порядок, который они найдены в родительском элементе, чтобы идентифицировать их.

Для этого можно использовать псевдоселектор, такой как :first-child или :nth-child.

Как только вы определили интервал, вам нужно выбрать следующий узел и получить его значение.

Один пример:

console.log($('span:first-child')[0].nextSibling.nodeValue)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div> 
 
<span style="color:red;">Gender:</span>Drama<br> 
 
<span style="color:red;">Country:</span>USA<br> 
 
</div>

+0

Спасибо, что так много, @motanelu. Я немного изменил свой селектор для достижения моих потребностей: 'alert ($ ('span: contains (" Gender ")') [0] .nextSibling.nodeValue);' – glezo

0

Ваш вопрос не очень понятно.

Я полагаю, ваше содержание имеет родителя (< р >?) У меня есть ощущение, что вы пытаетесь сделать что-то сложным образом, и что это может быть более простым.

Почему бы вам не разместить контент, который вы хотите выбрать в других диапазонах? :

var textContent = new Array(); 
 
$('p .selector').each(function() { 
 
    textContent.push($(this).text()); 
 
}); 
 

 
console.log(textContent[0]); 
 
console.log(textContent[1]);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p> 
 
    <span style="color:red;">Gender:</span><span class="selector">Drama</span><br> 
 
    <span style="color:red;">Country:</span><span class="selector">USA</span><br> 
 
</p>

+0

вопрос ** очень ясный **: I не может изменить html. Как я уже сказал, мне нужно разобрать и извлечь указанный токен, как он есть. – glezo

0

На основании ответа @montalenu, я достиг своей цели с помощью alert($('span:contains("Gender")')[0].nextSibling.nodeValue)‌​;

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