-1

コンソールログを実行すると、次のHTML構造が出力されます。

<div class="ui-widget ui-widget-content ui-helper-clearfix ui-corner-all" data-id="21">
          <div class="ui-widget-header ui-corner-all">
             <span class="ui-icon ui-icon-minusthick"></span>
             <h6>First Person</h6>
          </div>
          <p class="style-content"></p>
          <p class="style-content">Estimated Missing: 10</p>
          <p class="style-content">
            <span class="sub_task">6</span> 
            People Found
          </p>
        </div>

特定の変数の場合にクラスdeltaを追加したい<span class="sub_task">6</span>alpha = "12"

今のところ、私のjsファイルは次のようになっています。

console.log(elem)
elem = $(this).children()[3];
if (alpha=="12"){
elem.addClass("delta");
}

しかし、これはエラーになります:

Uncaught TypeError: Object #<HTMLParagraphElement> has no method 'addClass' 

2つの質問があります:

要素を取得するためのより良いセレクター。

クラスを追加するにはどうすればよいですか?

4

2 に答える 2

4

使用$またはそれjQuery 以降addClassはjQueryの関数です

$(elem).addClass("delta");

または

jQuery(elem).addClass("delta");

また、変更します。

elem = $(this).children()[3];

に:

elem = $(this).children().eq(2).find('span'); // note index starts at 0 in eq

または、このように直接クラスを追加することもできます(同じhtml構造を持っていると仮定します)

if (alpha == "12") {
   $('.style-content').find('span').addClass("delta");
}
于 2012-07-01T19:53:37.920 に答える
1

1つのスニペットで両方の答え:

$(this).children().eq(3).addClass('delta');
于 2012-07-01T19:54:45.567 に答える