Селекторы jQuery - PullRequest
       6

Селекторы jQuery

2 голосов
/ 22 марта 2011

Мне нужна помощь в получении значений из этих элементов HTML с помощью jQuery;

<ul class='post-meta'>
<li><span class='post-meta-key'>uniqueidA:</span> value1</li>
<li><span class='post-meta-key'>uniqueidB:</span> value2</li>
</ul>

Это динамические значения, и мне нужно сказать, получить 'value1' из 'uniqueidA' и 'value2' из 'uniqueidB'

Ответы [ 5 ]

5 голосов
/ 22 марта 2011
var a = $(".post-meta-key:contains('uniqueidA')").get(0).nextSibling.nodeValue;
var b = $(".post-meta-key:contains('uniqueidB')").get(0).nextSibling.nodeValue;

alert(a +" "+ b);

См. На jSFiddle: http://jsfiddle.net/jay2S/

Если вам нужны значения без пробелов, вы можете использовать jQuery.trim ()

alert($.trim(a) +" "+ $.trim(b));

В вашей конкретной ситуации может быть больше факторов, но это быстрый и грязный способ сделать это.

0 голосов
/ 22 марта 2011

Чтобы получить uniqueid и значение, нам нужно получить значения text() и nodeType.

var x = $('.post-meta-key');
var y = $('li').contents().filter(function() {
    return this.nodeType == 3
});
alert(x.eq(0).text() + " " + y.eq(0).text()); //This will get you only the first `<li>`

Чтобы получить значение всех <li>'s, нам нужно создать цикл for. Смотрите рабочий пример ниже.

Проверьте рабочий пример на http://jsfiddle.net/3CcjF/1/

0 голосов
/ 22 марта 2011

Список определений лучше соответствует вашим требованиям:

<dl class='post-meta'>
    <dt>uniqueidA</dt> <dd>value1</dd>
    <dt>uniqueidA</dt> <dd>value2</dd>
</dl>

... затем просто используйте next(), чтобы перейти к значению.

0 голосов
/ 22 марта 2011

ну, почему бы не поместить текст значения в тег с определенным идентификатором? это может быть вариант для вас?

<ul class='post-meta'>
    <li><span class='post-meta-key'>uniqueidA:</span><span id="uniqueidA">value1</span></li>
    <li><span class='post-meta-key'>uniqueidB:</span><span id="uniqueidB">value2</span></li>
</ul>

это решит твою проблему?

0 голосов
/ 22 марта 2011

Селекторы здесь не сильно помогут.

Вам нужно будет выбрать родителя: $('.post-meta-key:contains('uniqueidA'))

Тогда вам придется написать свой собственный javascript для разбора содержимого. Или вы можете скопировать родительский объект во временный объект, а затем .remove() span, оставив вам пробел и ваше значение.

Как предлагает Шиме Видас, переписайте свой HTML-код, чтобы селектор работал напрямую.

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