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在 an上没有调用这样的属性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 回答