我正在尝试构建自定义下拉列表,但我已成功完成此操作。但疑问是我无法设置x.data('name','value')
或x.attr('data-name','value')
等数据的原因。 x.setAttribute('data-name','value')
正在发挥作用。我得到了错误:
x.data不是函数
x.attr不是函数
我在这里做错了什么?请纠正我,因为我还在学习。
这是我的代码:
$(document).on('click','li.cus-dropdown-option',function(e){
var x = $(this).parent().prev().children()[0];
x.innerHTML = $(this).data("option-desc");
x.setAttribute('data-selected-desc', $(this).data("option-desc"));
x.setAttribute('data-selected-val', $(this).data("option-value"));
答案 0 :(得分:4)
您收到的错误是因为您使用[0]
从jQuery对象中检索DOMElement。如果您打算从匹配集中检索第一个元素,则应使用first()
。然后你收到一个jQuery对象,然后你可以调用data()
。试试这个:
$(document).on('click','li.cus-dropdown-option', function(e) {
$(this).parent().prev().children().first()
.html($(this).data("option-desc"))
.data({
'selected-desc', $(this).data("option-desc"),
'selected-val', $(this).data("option-value")
});
});