2013-10-07 57 views
0

我試圖針對所有的按鈕,這是一個類的'行動'的div的孩子。jquery每個功能的目標兒童的div

我想我的函數採取onclick的值,過濾出字母和特殊字符,並將數字添加到數組。

該函數的工作原理,當我嘗試將目標按鈕外部的div,但不是當我嘗試目標。actions按鈕。

任何人有任何想法?

小提琴:http://jsfiddle.net/Teilmann/wN79n/5/

HTML:

<div class="actions"> 
    <button onclick="addToCart(1337, 'something');" /> 
</div> 
<div class="actions"> 
    <button onclick="addToCart(1338, 'something');" /> 
</div> 
<div class="actions"> 
    <button onclick="addToCart(1339, 'something');" /> 
</div> 

JS:

var products = new Array(); 

jQuery('.actions button').each(function(){ 
    var id = jQuery(this).getAttribute('onclick'); 
    products.push(id.replace(/[^0-9]/g, '')); 
}); 

alert(products); 

回答

4

你的HTML是不正確<button/>它需要<button></button>getAttribute必須.attr()

HTML

<button onclick="str1" ></button> <!--changed html here from <button/>--> 
<button onclick="2" ></button> <!--changed html here from <button/>--> 
<button onclick="addToCart(1234, 'something');" ></button> <!--changed html here from <button/>--> 

<div class="actions"> 
    <button onclick="addToCart(1337, 'something');" /> 
</div> 
<div class="actions"> 
    <button onclick="addToCart(1338, 'something');" /> 
</div> 
<div class="actions"> 
    <button onclick="addToCart(1339, 'something');" /> 
</div> 

jQuery的

var products = new Array(); 


jQuery('.actions button').each(function(){ 
    var id = jQuery(this).attr('onclick'); 
    products.push(id.replace(/[^0-9]/g, '')); 
}); 

alert(products); 

DEMO

如果你不</button>關閉按鈕的HTML將自動生成該標記

<button onclick="str1"></button> 
<button onclick="2"></button> 
<button onclick="addToCart(1234, 'something');"> 
    <div class="actions"></div> 
</button> 
<button onclick="addToCart(1337, 'something');"> 
    <div class="actions"></div> 
</button> 
<button onclick="addToCart(1338, 'something');"> 
    <div class="actions"></div> 
</button> 
<button onclick="addToCart(1339, 'something');"></button> 
+0

耶,好吧,我看到你的觀點。感謝您的快速回復。 –