$(要素)[インデックス] .addClass(); 動作しません

ウィリー

同じクラスの要素が複数あります。以下でこの方法を使用すると、機能しません。

$(".tab-content")[index].addClass("active-content");

私のコード:

HTML:

<div class="container">
    <div class="content">
        <ul class="tag">
            <li>
                <a href="javascript:;">
                    Lodon
                </a>
            </li>
            <li>
                <a href="javascript:;">
                    Paris
                </a>
            </li>
            <li>
                <a href="javascript:;">
                    Tokyo
                </a>
            </li>
        </ul>
        <div class="tab-content">
            <h3>Lodon</h3>
            <p>London is the capital of England</p>
        </div>
        <div class="tab-content">
            <h3>Paris</h3>
            <p>Paris is the capital of France</p>
        </div>
        <div class="tab-content">
            <h3>Tokyo</h3>
            <p>Tokyo is the capital of Japan</p>
        </div>
    </div>
</div>

そしてJS

$(".tag li").click(function () {
    var index = $(this).index();
    $(".tab-content")[index].addClass("active-content");
});

https://codepen.io/WillyIsCoding/pen/KoMxMJ

myfunkyside

これ.addClass()は、がjQueryメソッドであり、ネイティブJSメソッドではないためです。

また、を使用する$(".tab-content")[index]と、jQueryオブジェクト内で真のDOM要素を選択することになります。を使用しdocument.getElementById("id")ときに得られるのと同じ種類の要素

そして、それをjQueryメソッドと組み合わせる場合と同じように、
document.getElementById("id").addClass("class");
これもエラーを生成し、機能しません。
$(".tab-content")[index].addClass("class");

これを機能させるには、jQueryに固執する必要があります。幸いなことに、jQueryにはそれを行うためのメソッドがあります.eq()と同じように.addClass()、これはjQueryメソッドなので、同じように使用できます。


解決: $(".tab-content").eq(index).addClass("active-content");

このメソッドは、一致する要素の完全なセットの指定されたインデックスにある要素を選択し、その1つの要素に対してのみアクションを実行します。


少しいじった後、私はあなたのコードのこの代替実装を思いついた。
私はそれをここに置くと思いました、多分誰かがそれが役に立つと思うでしょう:

$(".select").change(function() {
  $(".tab.active").removeClass("active").addClass("hidden");
  $(".tab").eq($(this).children("option:selected").index()).removeClass("hidden").addClass("active");
});
.tab.hidden {display:none;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div>
  <select class="select">
    <option selected="selected">London</option>
    <option>Paris</option>
    <option>Tokyo</option>
  </select>
  <div class="tab active"><h3>London</h3><p>London is the capital of England</p></div>
  <div class="tab hidden"><h3>Paris</h3><p>Paris is the capital of France</p></div>
  <div class="tab hidden"><h3>Tokyo</h3><p>Tokyo is the capital of Japan</p></div>
</div>
jsfiddle:https://jsfiddle.net/jdea7mc8/

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

$(this).addClassをクリックして動作させることができません

分類Dev

$(this).addClass( 'why-you-no-working'); ウェイポイントで作業していませんか?

分類Dev

jQueryのaddClassはクラスを追加しません

分類Dev

jQueryのaddClassはクラスを追加していません

分類Dev

addClass()、クラスは追加されましたが、CSSが機能しません

分類Dev

AngularJS $ animate.addClassがaddClass関数を起動していません

分類Dev

jQueryのappend()および$(this).addClass()メソッドが機能していません

分類Dev

addClassがプロジェクトで機能していません

分類Dev

デスクトップはlubuntuでは動作しません

分類Dev

Mernスタックアプリはherokuローカルで動作しますが、デプロイ時にオンラインで動作しません

分類Dev

addClass()が機能していません

分類Dev

マイクはスカイプでは動作しません

分類Dev

マイクはスカイプでは動作しません

分類Dev

AlsamixerはBluetoothデバイスでは動作しません

分類Dev

MotionEndedデバイスで動作していません

分類Dev

.addClass関数を使用すると、クリックしても境界線が表示されません

分類Dev

addClassは、次のクリックまでレンダリングされません

分類Dev

.addClassを使用している場合、リストアイテムの色を変更できません

分類Dev

JavaクライアントAndroid仮想デバイスでは動作しますが、実際のデバイスでは動作しません

分類Dev

画像をクリックしても動作しません

分類Dev

マージン:0自動; 動作しません

分類Dev

jqueryでクラスとaddclassを削除します

分類Dev

Mendeleyデスクトップはubuntu16.04では動作しません

分類Dev

ラップトップはイーサネットで動作しますが、デスクトップでは動作しませんか?

分類Dev

現在のli要素にaddClassを追加し、removeClassを削除します

分類Dev

Newtonsoft.JsonはUnityEditorで動作しますが、モバイルデバイスでは動作しません

分類Dev

Jquery addClassを使用して要素に追加されたクラス名は、javascriptonclickを使用して呼び出されたときに検出されません

分類Dev

jQuery-addClassの後にクリックハンドラーを追加します

分類Dev

hitTestObjectはPCで動作しますが、Androidデバイスでは動作しません

Related 関連記事

  1. 1

    $(this).addClassをクリックして動作させることができません

  2. 2

    $(this).addClass( 'why-you-no-working'); ウェイポイントで作業していませんか?

  3. 3

    jQueryのaddClassはクラスを追加しません

  4. 4

    jQueryのaddClassはクラスを追加していません

  5. 5

    addClass()、クラスは追加されましたが、CSSが機能しません

  6. 6

    AngularJS $ animate.addClassがaddClass関数を起動していません

  7. 7

    jQueryのappend()および$(this).addClass()メソッドが機能していません

  8. 8

    addClassがプロジェクトで機能していません

  9. 9

    デスクトップはlubuntuでは動作しません

  10. 10

    Mernスタックアプリはherokuローカルで動作しますが、デプロイ時にオンラインで動作しません

  11. 11

    addClass()が機能していません

  12. 12

    マイクはスカイプでは動作しません

  13. 13

    マイクはスカイプでは動作しません

  14. 14

    AlsamixerはBluetoothデバイスでは動作しません

  15. 15

    MotionEndedデバイスで動作していません

  16. 16

    .addClass関数を使用すると、クリックしても境界線が表示されません

  17. 17

    addClassは、次のクリックまでレンダリングされません

  18. 18

    .addClassを使用している場合、リストアイテムの色を変更できません

  19. 19

    JavaクライアントAndroid仮想デバイスでは動作しますが、実際のデバイスでは動作しません

  20. 20

    画像をクリックしても動作しません

  21. 21

    マージン:0自動; 動作しません

  22. 22

    jqueryでクラスとaddclassを削除します

  23. 23

    Mendeleyデスクトップはubuntu16.04では動作しません

  24. 24

    ラップトップはイーサネットで動作しますが、デスクトップでは動作しませんか?

  25. 25

    現在のli要素にaddClassを追加し、removeClassを削除します

  26. 26

    Newtonsoft.JsonはUnityEditorで動作しますが、モバイルデバイスでは動作しません

  27. 27

    Jquery addClassを使用して要素に追加されたクラス名は、javascriptonclickを使用して呼び出されたときに検出されません

  28. 28

    jQuery-addClassの後にクリックハンドラーを追加します

  29. 29

    hitTestObjectはPCで動作しますが、Androidデバイスでは動作しません

ホットタグ

アーカイブ