2

私はJQueryを初めて使用し、リスト内の要素の属性を設定するのに苦労しています。私は次のhtmlを持っています

<ul class="collections">
<li><a href="#" id="2">LINEN </a></li>
<li><a href="#" id="3">ANIMAL PRINTS</a></li>
<li><a href="#" id="4">BASKET WEAVE</a></li>
<li><a href="#" id="5">FAUX LEATHER</a></li>
<li><a href="#" id="6">FAUX SUEDE</a></li>
<li><a href="#" id="7">HALLMARK</a></li>
<li><a href="#" id="8">JUMBO CORD</a></li>
<li><a href="#" id="9">PHYTHON</a></li>
<li><a href="#" id="10">CHENILLE CARLTON</a></li>

idが2であるリストの項目に属性class="current"を追加したいと思います。

を使用してすべてのアイテムを設定できます$('.collections a').attr('class','current');

次を使用して、IDが2のアイテムを検出できます。

if($('.collections a').attr('id') == 2){
        console.log('WE HAVE A MATCH');

    }

しかし、ここでは、実際の要素への参照を取得する方法がわかりません。

私はequalsメソッドを使用してクラスを設定することができました。

        $(".collections a:eq(0)").attr('class','current');

ただし、リストの順序が変更された場合に備えて、要素のIDを使用して設定できるようにすることをお勧めします。

どんな助けでも大歓迎です。

前もって感謝します。

よろしく

4

3 に答える 3

3

id属性は一意である必要があるため、これで実行されます

$(".collections a#2").addClass("current")

ただし、 -sを数字で始めないことを強くお勧めしますid

于 2012-07-17T00:41:24.003 に答える
1

これは問題ないはずです:

var id = 2;
$('.collections li a').removeClass('current'); // reset current class
$('#' + id).addClass('current'); // set current case given an ID
于 2012-07-17T00:43:26.200 に答える
1

ここには、答える必要のある質問が少なくともいくつかあります。

  1. 属性を取得および設定するには、$.prop()link)を使用します
  2. idプロパティで要素を取得するには、ハッシュセレクター($('#id_of_element')または$('li#id_of_li_element'))を使用します(セレクターの完全なリストはこちら
  3. 取得したコレクションを確認するには、を見てください$('selector').length。何も見つからなかった場合は0なので、if($('li#id_of_li').length){ ... };を使用できます。
  4. 一部のブラウザでは数値IDが表示されないため、数値IDは使用しないでください。<li id="li_1">常に。の代わりにアルファベットの例でIDを開始し<li id="1">ます。
  5. クラスを設定、取得、削除するには、専用のメソッドを使用$.addClass('classname')$.hasClass('classname')$.removeClass('classname')
  6. 要素が特定のセレクターと一致するかどうかを確認するには、次を使用できます$('elements').is('selector')ここにリンク

これでいくつかの問題が解決することを心から願っています

于 2012-07-17T00:45:26.610 に答える