0

div 内に div があります。約 3 または 4 レベルの深さに、span タグを含む P タグを含む div があります。ネストされたスパンに特定の文字列が含まれているかどうかに基づいて、既存のクラスの上にある div に追加のクラスを追加する必要があります。

これが私のhtmlコードです:pastebin.comリンク

ネストされたスパン要素をチェックして、文字列「october」が含まれているかどうかを確認する必要があります。含まれている場合は、「event-data」のクラスが既にあるトップ div に「October」のクラスを追加します。

4

2 に答える 2

0

何も忘れていないことを願っています

var span=$("p>span");

for(var i=0;i<span.length;i++) {
    if(span[i].text().indexOf("october") >= 0)) {
        span[i].parents("div.event-data").addClass("October");
    }
}
于 2012-06-07T01:07:19.497 に答える
0

文字列を含むスパンが の場合el、親クラスを次のように設定できます。

$(el).parents(".event_data").last().addClass("October")

ここで重要なのは.parents(sel)、指定されたセレクターに一致するすべての親を返すことです。それらは、親チェーンの最も近いものから最も遠いものの順に返されます。次に、.last()最後のオブジェクト (親チェーンの一番上) を選択addClass()し、目的のクラスを残りの親オブジェクトに追加します。

スパンを見つけてテキストをテストするためのサポートも必要な場合は、テキストをテストするスパンを特定する方法について、より多くのガイダンスを提供する必要があります。


テキストを探す場所の説明はまだ少し曖昧で具体的ではありませんが、すべてを行う1つの方法を次に示します。

$('p[id^="event_date-"]:contains(October)')
    .parents(".event_data").last().addClass("October");​

そして、HTML で動作することがわかります: http://jsfiddle.net/jfriend00/Pp8gw/

説明:

  • pで始まる ID を持つタグを検索します"event_date-"
  • そのタグ内でp、テキストを見つけます"October"
  • のクラスを持つすべての先祖を見つける"event_data"
  • 最も遠い祖先を取得する
  • "October"その祖先にクラスを追加します
于 2012-06-07T01:05:01.870 に答える