2014-04-04 27 views
-1

的jsfiddle http://jsfiddle.net/RC79G/1/選擇一個元素,如果它有一個相鄰的兄弟,選擇以及

一個奇怪的問題處理。這可能不是處理它的最好方式,但這是我知道這樣做的唯一方法。

我正在與Bandsintown,這可能是一個皇家的痛苦來定製。它拍攝了大量元素。我想將所有元素A都包含在<li>中,但是如果元素B位於元素A的下面,我想將它們都包裝在一起。

之前:

元素A

元素A

元素A

元素A

元件B

元素A

元素A

後:

- 元素A -

- 元素A -

- 元素A -

  • 元素A元素乙 -

- 元素a -

- 元素a -

所以我知道如何選擇相鄰的兄弟,但我不知道如何選擇和原始元素。

想法?

當前代碼這個樣子的,但你可以找到一個

$("div:not('.bit-event-description') + .bit-event-description").wrap("<div class='col-md-4 col-sm-4'></div>"); 
+1

你真的應該爲此設置一個小提琴,但實現它的方法是緩存選擇器並添加()prev()元素。 – adeneo

+0

看起來好像你正在監視無效的HTML標記 –

回答

1

你這是怎麼使用的下一個同級選擇

var el = $("tr:not('.bit-event-description') + .bit-event-description"); 
el.add(el.prev()).wrap("<div class='col-md-4 col-sm-4'></div>"); 

這不是真正清楚何時加一個元素,將如何包裝元素A和B,因爲沒有標記或任何可能性來測試?

+1

「我想把它們包裝在一起」不是它應該是'.wrapAll()'嗎? –

+0

正確! http://jsfiddle.net/RC79G/ –

+0

@ A.Wolff - 我實際上即將使用wrapAll,但不確定,因爲很難看出這是如何工作的,所以我在答案中寫了最後一行,但眼睛好! – adeneo