2013-02-11 87 views
0

我想插入兩個元素之間的一些HTML第一個元素後,我的代碼減少的測試用例是:HTML噴吹用jQuery

<div class="testing"> 
<span>1</span> 
<span>2</span> 
</div> 

我想要做的就是注入「或」字兩個,所以之間:

<div class="testing"> 
<span>1</span> 
<p> or </p> 
<span>2</span> 
</div> 
我看了使用後前插方法,但似乎沒有成爲一個辦法把它限制在專區內的第一跨度。

+0

是否有* *總是在第一跨度,還是你知道什麼時候會是跨度的哪個號碼? – 2013-02-11 22:01:17

+0

是的,在這種情況下,它將始終在第一個跨度之後。 – user319940 2013-02-11 22:02:02

+1

@ user319940正如你在答案中所看到的,這可以通過一個簡單的選擇器來實現。請注意':first'是如何作爲':eq(0)'的別名。有關更多有用的信息,請參閱[jQuery選擇器](http://api.jquery.com/category/selectors/)上的文檔。 – Boaz 2013-02-11 22:05:23

回答

4

嘗試:

$('div.testing span:eq(0)').after('<p> or </p>'); 

jsFiddle example

正如在評論中指出,span:eq(0)也相當於span:first

+0

似乎很好 - eq:(0)做了什麼? - 編輯:真棒謝謝,會接受這個答案。 – user319940 2013-02-11 22:07:08

+0

'.eq()'允許你選擇你想要的元素的索引。請參閱http://api.jquery.com/eq/。它基於零,所以'.eq(0)'是第一個元素。 – j08691 2013-02-11 22:07:59

+0

@ user319940當然這是一個從零開始的索引。所以':eq(1)'會選擇第二個*元素。 – Boaz 2013-02-11 22:09:12

2
$('.testing span:first').after('<p> or </p>'); 
-1
$('.testing span').first().after('<p> or </p>'); 
+0

正如在[documentation](http://api.jquery.com/first/)中指出的那樣:'first()'方法會''將匹配元素的集合導出到集合中的第一個元素。只有jQuery對象中的第一個元素將被返回,而不是*每個父元素中匹配選擇器的第一個元素。換句話說,這將只在一個'span'元素後附加HTML,而不是在所有匹配的'span'元素之後。 – Boaz 2013-02-11 22:12:13