jQuery Найти и перечислить все элементы LI в пределах UL в пределах определенного DIV

21

У меня есть 3 столбца UL, каждый из которых представляет собой контейнер Dynamic UL, который может иметь от 0 до 9 контейнеров LI (в конечном итоге больше). Все мои элементы LI имеют атрибут «rel», который я пытаюсь в конечном счете найти этот атрибут и использовать его для чего-то еще на всех элементах LI внутри этого родительского DIV. В конце концов, я хочу найти больше, основываясь на каждом, но, по крайней мере, на rel. Любые идеи, как я могу добиться этого с помощью jQuery? Пример:

<ul id="column1">
   <li rel="1">Info</li>
   <li rel="2">Info</li>
   <li rel="3">Info</li>
</ul>
<ul id="column2">
   <li rel="4">Info</li>
   <li rel="5">Info</li>
   <li rel="6">Info</li>
</ul>
<ul id="column3">
   <li rel="7">Info</li>
   <li rel="8">Info</li>
   <li rel="9">Info</li>
</ul>

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

Я пробовал find (), parent () и тому подобное, возможно, я ошибаюсь. Но его все еще стоит упомянуть, чтобы помочь придумать идею

    
задан chris 18.08.2011 в 05:09
источник
  • вы пытаетесь выбрать по rel? Или получить массив rels? –  Fresheyeball 18.08.2011 в 05:14
  • , пытающийся сформировать массив rels за столбец. –  chris 18.08.2011 в 05:16

4 ответа

32

Вы думаете о чем-то подобном?

$('ul li').each(function(i)
{
   $(this).attr('rel'); // This is your rel value
});
    
ответ дан pixelfreak 18.08.2011 в 05:12
10
var column1RelArray = [];
$('#column1 li').each(function(){
    column1RelArray.push($(this).attr('rel'));
});

или стиль fp

var column1RelArray = $('#column1 li').map(function(){ 
    return $(this).attr('rel'); 
});
    
ответ дан Fresheyeball 18.08.2011 в 05:22
4
$('li[rel=7]').siblings().andSelf();

// or:

$('li[rel=7]').parent().children();

Теперь, когда вы добавили этот комментарий, объяснив, что вы хотите «создать массив ссылок на столбец», вы должны сделать это:

var rels = [];

$('ul').each(function() {
    var localRels = [];

    $(this).find('li').each(function(){
        localRels.push( $(this).attr('rel') );
    });

    rels.push(localRels);
});
    
ответ дан Joseph Silber 18.08.2011 в 05:14
1

HTML

<ul class="answerList" id="oneAnswer">
    <li class="answer" value="false">info1</li>
    <li class="answer" value="false">info2</li>
    <li class="answer" value="false">info3</li>
</ul>   

Получить индекс, текст, значение JS

    $('#oneAnswer li').each(function (i) {

        var index = $(this).index();
        var text = $(this).text();
        var value = $(this).attr('value');
        alert('Index is: ' + index + ' and text is ' + text + ' and Value ' + value);
    });
    
ответ дан Ahmad Aghazadeh 06.09.2016 в 19:00