在Jquery中为元素添加自定义属性

时间:2011-11-29 08:13:48

标签: javascript 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>

感谢您的帮助

5 个答案:

答案 0 :(得分:13)

您可以使用jQuery .data()功能。

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

使用

获取数据
theDiv.data('winWidth');

答案 1 :(得分:9)

我使用jQuery on-the-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>

答案 2 :(得分:7)

你做不到。使用jQuery.data api来将自定义属性与元素的jQuery包装器相关联。 http://api.jquery.com/jQuery.data/

答案 3 :(得分:5)

您还可以在图片中添加/设置自定义属性

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

将导致

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

答案 4 :(得分:-3)

首先检查

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

工作与否?如果它正常工作,请将''添加到您的添加属性代码中,如

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