2011-05-03 93 views
0

我想知道是否有一種方法將jQuery對象拆分爲多個部分(基於選擇器),但不使用基本javascript split();方法,該方法只適用於字符串。JQuery按選擇器分割

我希望能夠做一些事情,如:$("body").splitBySelector("br").each();等等...

<html> 
    <head></head> 
    <body> 
     <h1>Heading</h1> 
     <p>Some text</p> 
     <p>More text</p> 
     <br /> 
     <h2>Sub Heading</h2> 
     <p>Some other text</p> 
     <br class="atrivialexample"/> 
     <p>Yet more text</p> 
     <p>and another</p> 
    </body> 
</html> 

但正如你可以看到,如果我是使用split();功能我也無法解釋標記中可能存在或不存在的任何類或ID或任何其他屬性。而且我不會返回jquery對象,所以我可以繼續鏈接。

解決方案越簡單越好。

+0

你有什麼期望做有這些多個部分?每個新的jQuery集合對象都存儲在某個地方嗎? – 2011-05-03 13:46:29

+0

我不想讓'
'返回我想要他們劃定的html,並且按照該劃界進行分隔,這有意義嗎? – Christopher 2011-05-03 13:49:48

回答

1

聽起來像是你的HTML應該是這樣的:

<html> 
    <head></head> 
    <body> 
     <div id="block1"> 
      <h1>Heading</h1> 
      <p>Some text</p> 
      <p>More text</p> 
     </div> 
     <div id="block2"> 
      <h2>Sub Heading</h2> 
      <p>Some other text</p> 
     </div> 
     <div id="block3"> 
      <p>Yet more text</p> 
      <p>and another</p> 
     </div> 
    </body> 
</html> 

然後,嗯,你知道該怎麼做。

否則,如果你堅持,.nextUntil可能是use給你。文檔頁面上的示例看起來與您所詢問的非常相似。

+0

是的,如果標記是我可以控制的,但是對於這個問題我不能使用javascript,我正在研究'.nextUntil'(從來沒有聽說過它),然後我我們將回到檢查答案。 – Christopher 2011-05-03 13:51:56

+0

是的。謝謝'.nextUntil' is exaclty我在找什麼 – Christopher 2011-05-03 13:57:55

+0

@Christopher:沒問題! – 2011-05-03 13:58:34

1

根據你想要做的事情(因爲我不認爲這是所有有用的IRL),你可以使用拆分。

var html = $("body").html().split(/<br[^>]?>/gi); 
for(var i = 0; i < html.length; i++){ 
    // $(html[i]) etc. 
} 

這不是真正的有用,因爲在那裏創建jQuery對象的for循環沒有什麼網頁上除了是一個副本的任何關係......