我尝试将信息从 LI 传输到 jQuery 函数,但未定义:
HTML 代码
"<li id='" + obj[i].ID + "' itemid='"+obj[i].Name+"'>" + obj[i].Name + "</li>";//info from an array name obj, works fine in li.
jquery 代码:
var array = [];
var $elem = $(this);
$elem.each(function (i) {
$('li', this).each(function (e) {
array.push(this.id,this.itemid); // this.id works, **this.item - undefined**
});
我还尝试创建一个特殊属性来将我的信息从 li 传输到 jQuery 函数,但没有变化。(itemid 是 LI 属性)
我错过了什么吗?
最佳答案
使用data-* attributes和 jQuery .data()
"<li id='" + obj[i].ID + "' data-itemid='"+obj[i].Name+"'>" + obj[i].Name + "</li>";
JavaScript:
var array = [];
var $elem = $(this);
$elem.each(function (i) {
$('li', this).each(function (e) {
array.push(this.id, $(this).data('itemid'));
});
this.itemid
不起作用的原因是它不是有效的 html 属性。使用 data-* 是将数据作为元素属性传递的正确方法。
关于javascript - 为什么无法将信息从 html li 标签传输到 jQuery 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21140633/