Jquery每个函数目标div的孩子

Tho*_*ann 1 html javascript each 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>
Run Code Online (Sandbox Code Playgroud)

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);
Run Code Online (Sandbox Code Playgroud)

Ant*_*ton 5

您的 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>
Run Code Online (Sandbox Code Playgroud)

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);
Run Code Online (Sandbox Code Playgroud)

演示

如果不关闭按钮,</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>
Run Code Online (Sandbox Code Playgroud)