J'essaie d'ajouter un attribut personnalisé sur mon élément à l'aide de jquery:

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

Mais au final, mes éléments n'ont pas d'attribut "element_id".

PS, mes éléments html ressemblent à:

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

Merci pour l'aide

17
Sebastien 29 nov. 2011 à 12:13

5 réponses

Meilleure réponse

Tu ne peux pas. Utilisez plutôt l'api jQuery.data pour associer des propriétés personnalisées à l'encapsuleur jQuery de l'élément. http://api.jquery.com/jQuery.data/

7
hungryMind 29 nov. 2011 à 08:15

J'utilise la technique jQuery à la volée pour accomplir ce hack.

$(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>
10
BSMP 24 mai 2017 à 23:50

Premier contrôle

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

Fonctionne ou non? Si cela fonctionne, mettez «» à votre code d'attribut d'ajout comme,

$(this).attr('element_id','4');
-3
Kemal Can Kara 29 nov. 2011 à 08:19

Vous pouvez également ajouter / définir un attribut personnalisé dans l'image

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

Il en résultera

<img src="xyz.jpg" data-img="Hello">
5
Amir Iqbal 29 juil. 2015 à 08:02

Vous pouvez utiliser la fonctionnalité jQuery .data ().

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

Récupérez les données en utilisant

theDiv.data('winWidth');
15
JGilmartin 4 avril 2013 à 14:50
8307635