我尝试将信息从我的LI传输到jQuery函数,但我没有得到定义:
网页代码
"<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 函数,但没有变化。(项 ID 是 LI 属性)
我错过了什么吗?
使用 data
-* 属性和 jQuery .data()
"<li id='" + obj[i].ID + "' data-itemid='"+obj[i].Name+"'>" + obj[i].Name + "</li>";
JavaSscript:
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-* 是将数据作为元素属性传递的正确方法。
我喜欢
jammykam的解决方案,但是如果你不想改变你的HTML,你可以使用.attr()jQuery方法来获取itemid属性的值:
array.push(this.id, $(this).attr('itemid'));