jQuery Найти и перечислить все элементы LI в UL в пределах определенного DIV - PullRequest
24 голосов
/ 18 августа 2011

У меня есть 3 столбца UL в каждом контейнере Dynamic UL, который может содержать от 0 до 9 контейнеров LI (в конечном итоге, больше).Все мои элементы LI имеют атрибут «rel», который я пытаюсь в конечном итоге найти, и использовать его для чего-то другого на всех элементах LI в этом родительском DIV.В конце концов я хочу найти больше, основываясь на каждом из них, но не в последнюю очередь. Любые идеи, как я могу добиться этого с помощью 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 () и аналогичные, возможноЯ подхожу к этому неправильно.Но все же стоит упомянуть, чтобы помочь придумать идею

Ответы [ 4 ]

39 голосов
/ 18 августа 2011

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

$('ul li').each(function(i)
{
   $(this).attr('rel'); // This is your rel value
});
13 голосов
/ 18 августа 2011
var column1RelArray = [];
$('#column1 li').each(function(){
    column1RelArray.push($(this).attr('rel'));
});

или стиль fp

var column1RelArray = $('#column1 li').map(function(){ 
    return $(this).attr('rel'); 
});
5 голосов
/ 18 августа 2011
$('li[rel=7]').siblings().andSelf();

// or:

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

Теперь, когда вы добавили комментарий, объясняющий, что вы хотите «сформировать массив rels per column», вы должны сделать это:

var rels = [];

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

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

    rels.push(localRels);
});
2 голосов
/ 06 сентября 2016

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);
    });
...