javascript - Why jQuery data won't work with append? -
i appending data server unordered list, setting data-id
attribute data()
doesn't work, attr()
does.
when using data()
:
appends <li>home</li>
$('#menu').append($('<li>').text("home").data('id', 5));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul id="menu"> </ul>
when using attr()
:
appends <li data-id="5">home</li>
$('#menu').append($('<li>').text("home").attr('data-id', 5));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul id="menu"> </ul>
i know append so, prefer first option.
$('#menu').append('<li data-id="5">home</li>');
the .data()
method read data-* attribute secondary function. first tries read data jquery's internal cache key-value pair (attached element).
the main takeaway is, doesn't work other way around. i.e. .data()
not put attributes on element. store data in jquery's internal cache associated element.
Comments
Post a Comment