Получить доступ к атрибуту rel с помощью этого ключевого слова javascript

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(",");  

Кроме того, эта функция дает строку, но мне нужен массив, который будет создан для публикации.

Теги:

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

См. ЗДЕСЬ

  • 0
    Большое спасибо, сэр, но как получить массив с помощью этого кода, этот код возвращает строку ... но мне нужен такой массив: SOLD [1] = 1 или SOLD [1] = 2, в котором значение элемент массива является свойством rel.
  • 0
    @sqlchild Для этого, посмотрите мою демонстрацию здесь jsfiddle.net/F6rtm/6 `
Показать ещё 1 комментарий
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

0

пытаться

 $(this).attr("rel")

это даст вам значение атрибута с именем rel '

Ещё вопросы

Сообщество Overcoder
Наверх
Меню