0

JSFIDDLEを確認してください。アラートの rel 属性が 'undefined' として出力されます。

var ItemTypeArray = $('input[name^=ItemType]:checked').map(function(){


alert(this.id + '  , r= ' + this.rel);  

return this.rel + '--' + this.value;

}).get().join(",");  

また、この関数は文字列を返しますが、投稿するには配列を構築する必要があります。

4

3 に答える 3

3

relで呼び出されるそのような属性はありませんinput(linkただし、タグにはあります)。data代わりに属性を実際に使用する必要があります。

<input id="SOLD[1]" value="1" name="ItemType[1]" type="radio" data-rel="1">
<input id="PURCHASED[1]" value="2" name="ItemType[1]" type="radio" checked="checked" data-rel="1">

次に、次のことができます。

var ItemTypeArray = $('input[name^=ItemType]:checked').map(function () {
    alert(this.id + '  , r= ' + $(this).data("rel"));
    return $(this).data("rel") + '--' + this.value;
}).get().join(",");

または、コメントで述べた内容 (配列) を返すには、次のようにします。

var ItemTypeArray = [];

$('input[name^=ItemType]:checked').each(function () {
    ItemTypeArray.push(this.id + ' = ' + $(this).data("rel"));
});

こちらをご覧ください

于 2013-09-23T09:12:28.640 に答える
1

jquery を含め、コードを次のように変更しました。$(this).attr('rel')の代わりに使用this.rel

    var ItemTypeArray = $('input[name^=ItemType]:checked').map(function () {
        alert(this.id + '  , r= ' + $(this).attr('rel'));
        return this.rel + '--' + this.value;
}).get().join(",");

ここにjsfiddleがあります

于 2013-09-23T09:12:40.340 に答える
0

試す

 $(this).attr("rel")

これにより、「rel」という名前の属性値が取得されます

于 2013-09-23T09:12:55.327 に答える