2016-02-11 26 views
0

我的問題是這樣的:jQuery的動態同名

<div class="div1"> 
    <textarea class="area1"> </textarea> 
</div> 
<div class="div1"> 
    <textarea class="area1"> </textarea> 
</div> 
<div class="div1"> 
    <textarea class="area1"> </textarea> 
</div> 

所有動態添加的divs,併爲每個divtextarea同等級的結構是預定義的。

當試圖通過nth-child(x)上的jquery觸發onblur事件時,我使用下面的示例獲取了在所有textareas上觸發的事件。

$(document).on('blur', '.area1', function() {console.log($(this).val());}); 

我嘗試以下,以獲得nth-child(2)nth-child(x),但它是不夠的:

$(document).on('blur', '.area1', ':nth-child(2)', function(){console.log($(this).val());}); 

我怎樣才能得到只有2兒童或兒童X?

希望有人有一個很好的解決方案! :)

回答

3
$(document).on('blur', '.area1:eq(1)', function(){console.log($(this).val());}); 
+0

啊,很棒! :D謝謝! – gudbrand3

1

您需要將您的僞類連接到選擇.area1用冒號,因爲,雖然它是一個僞類,它是選擇的一部分。

+0

啊哈,謝謝:)它沒有工作:nth-​​child(2)壽,但與:公式(2)它的工作,不知道爲什麼:nth孩子(2)沒有工作..嗯,但感謝您的幫助! :) – gudbrand3

+0

我犯了一個愚蠢的錯誤。它沒有與第n個孩子(2)一起工作,因爲textarea沒有孩子,只有「area1」類。它引用了一個不存在的元素。它可以使用.div1:nth-​​of-type(2)> textarea.area1,但是:eq做得更好,因爲它找到文檔中類area1的所有元素並將它們存儲在數組中。這就是爲什麼:eq(1)給你第二個.area1元素(數組從0開始)。 –

+0

啊哈,謝謝,剛剛瞭解了很多關於孩子的元素:)再次感謝 – gudbrand3