Добавление пользовательского атрибута в элемент JQuery

Я пытаюсь добавить пользовательский атрибут в свой элемент, используя jquery:

$('.map-areas-div').rand(numElements).each(function(){
      $(this).attr('element_id',4);
});

Но в конце мои элементы не имеют атрибута element_id.

PS, мои элементы html выглядят так:

<div type="ground" class="map-areas-div" style="position: absolute; top: 900px; left: 720px; height: 40px; width: 90px;"></div>

Спасибо за помощь

Ответы

Ответ 1

Вы не можете. Используйте jQuery.data api вместо этого, чтобы связать пользовательские свойства с оболочкой элемента jQuery. http://api.jquery.com/jQuery.data/

Ответ 2

вы можете использовать jQuery.data().

var theDiv = $('#' + divID).data('winWidth', value);

Получите данные с помощью

theDiv.data('winWidth');

Ответ 3

Я использую метод jQuery on-fly-fly для выполнения этого взлома.

$(document).ready(function() {

  $('<div>').attr('id', 'attributename').attr('faron', 'Idunnoyoucanseeme').text('Hello, I am the element with made-up attribute built on the fly.  Made up attribute: faron').appendTo('#nest');

  var attributegrabber = $('#attributename').attr('faron');

  alert(attributegrabber);

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="nest"></div>

Ответ 4

Вы можете добавить/установить собственный атрибут в изображение также

var attr = 'data-img';
var img = 'Hello'
jQuery('img').attr(attr,img);

это приведет к

<img src="xyz.jpg" data-img="Hello">

Ответ 5

Сначала проверьте

$(this).css('background', 'url(' + randomItem.src + ')');

работает или нет? Если он работает, поместите '' в свой код атрибута добавления, например,

$(this).attr('element_id','4');