2012-06-07 39 views
0

中,向頂層元素添加一個類我有div內的div。大約3或4級深度我有一個包含P標籤的div,其中包含span標籤。我需要添加一個額外的類到一個已經存在的類更高的div,並基於它或不是我的嵌套跨度包含特定的字符串。如果一個字符串深嵌在

這裏是我的html代碼:pastebin.com link

我需要檢查自己的嵌套span元素,看它是否包含字符串「十一」,如果這樣的附加類的「十一」添加到頂部的div已有一類「事件數據」。

回答

0

如果包含字符串是el跨度,那麼你可以這樣設置父類:

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

這裏的關鍵是,.parents(sel)將返回給定的選擇相匹配的所有父母,他們返回從最接近母鏈的距離最遠。然後,.last()選擇最後一個(父鏈最遠),然後addClass()將所需的類添加到剩餘的父對象。

如果您還需要幫助查找文本的跨度和測試,那麼您需要提供關於如何識別要爲文本測試的跨度的更多指導。


你的地方去尋找文字說明還是有點朦朧和非特異性的,但這裏的做這件事的一種方法:

$('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"添加到祖先
+0

我不明白什麼(el)是我從未遇到過的。 – BrettGolding

+0

@BrettGolding - 'el'是包含文本的跨度的DOM引用。正如我在我的回答中所說的,如果你需要尋找跨度的幫助,那麼你需要給我們一些指導,幫助我們找出尋找文本的跨度。你有很多不同的跨度,不要只看你的頁面中的任何跨度。 – jfriend00

+0

跨度有一節的標題 – BrettGolding

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"); 
    } 
} 
+0

這似乎沒有工作。下面的例子。 – BrettGolding

+0

你說得對。試試這個請。 – Oliver

相關問題