我正在尝试定位所有按钮,这些按钮是具有“操作”类的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);
答案 0 :(得分: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);
如果您没有使用</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>