web-dev-qa-db-ja.com

jQuery特定のDIV内のUL内のすべてのLI要素を検索して一覧表示する

ULの3列があり、それぞれが動的ULコンテナーで、0〜9個のLIコンテナー(最終的にはそれ以上)を持つことができます。すべてのLI要素には属性「rel」があり、最終的にその属性を見つけて、その親DIV内のすべてのLI要素で他の何かに使用しようとしています。私は最終的に、それぞれに基づいてより多くを見つけたいと思っていますが、少なくとも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()などを試してみましたが、間違っている可能性があります。しかし、アイデアを思い付くのを助けるためにまだ言及する価値があります

26
chris

このようなことを考えていますか?

$('ul li').each(function(i)
{
   $(this).attr('rel'); // This is your rel value
});
40
pixelfreak
var column1RelArray = [];
$('#column1 li').each(function(){
    column1RelArray.Push($(this).attr('rel'));
});

またはfpスタイル

var column1RelArray = $('#column1 li').map(function(){ 
    return $(this).attr('rel'); 
});
14
Fresheyeball
$('li[rel=7]').siblings().andSelf();

// or:

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

「列ごとにrelsの配列を形成する」ことを説明するコメントを追加したので、これを行う必要があります。

var rels = [];

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

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

    rels.Push(localRels);
});
5
Joseph Silber

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);
    });
3
Ahmad Aghazadeh