1

クラス「アクション」を持つ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

1 に答える 1

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>

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);

デモ

htmlでボタンを閉じないと</button>、このマークアップが自動的に生成されます

<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>
于 2013-10-07T09:31:10.017 に答える