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