如何将jQuery.data()属性添加到dropdownlist选项元素
我试图使用jQuerys.data()向下拉列表中的元素添加一些额外的数据,下拉列表正在填充属性,并且我想要的ID在那里,但是当我尝试访问时,数据显示出来并且未定义 人口编码如何将jQuery.data()属性添加到dropdownlist选项元素,jquery,html,Jquery,Html,我试图使用jQuerys.data()向下拉列表中的元素添加一些额外的数据,下拉列表正在填充属性,并且我想要的ID在那里,但是当我尝试访问时,数据显示出来并且未定义 人口编码 $.each(tutorArray, function(index, item){ var TID= item.T.Id $.each(item.T.TimeList, function(ind, i) { $(ddl).append($('<
$.each(tutorArray, function(index, item){
var TID= item.T.Id
$.each(item.T.TimeList, function(ind, i) {
$(ddl).append($('<option></option>').val(i.StartTime).html(i.StartTime + ' - ' + i.EndTime).data({
TID: TID
}));
});
});
我会尝试使用camel-case作为您的数据属性名称,因为文档显示HTML5在处理属性时在幕后发挥了一些神奇的作用。您应该这样设置元素的
数据():
因此,您的人口代码可能如下所示:
$.each(tutorArray, function(index, item){
var TID= item.T.Id
$.each(item.T.TimeList, function(ind, i) {
var element = $('<option></option>');
element.val(i.StartTime).html(i.StartTime + ' - ' + i.EndTime);
element.data("TID", TID);
$(ddl).append(element);
});
});
$。每个(tutorArray,函数(索引,项){
var TID=item.T.Id
$。每个(项目T.时间列表,功能(ind,i){
变量元素=$('');
element.val(i.StartTime).html(i.StartTime+'-'+i.EndTime);
要素数据(“TID”,TID);
$(ddl).append(元素);
});
});
因此,从我的研究来看,.data()必须位于元素而不是子部分上,这是不可能的。因此它不能附加到
元素
我所做的是将数据包含在值字段中,然后在访问值时将其拆分
设置代码
var element = $('<option></option>');
element.val(i.StartTime +"--" +TID).html(i.StartTime + ' - ' + i.EndTime);
采用上述方法修改版本的解决方案
虽然在你问这个问题几个月后,我还是想把它包括在内,这样它可以帮助其他用户查找类似的问题。
我最近碰巧遇到了一个类似的问题,我看到了这个线程,并使用Tadeck的答案使用jquery设置下拉列表的数据值
起初,数据值的设置也没有像您提到的那样正确,但后来我改变了方法并做了一些事情(见下文),帮助我在jquery中设置/检索数据值
var element = $('<option></option>');
element.val('id').text('uiName');
$(element).data("type", 'mytype');
var元素=$('');
元素。val('id')。text('uiName');
$(元素)。数据(“类型”,“mytype”);
//这里唯一的变化是,我没有使用element.data(…),而是使用$将该元素称为jquery dom元素,这碰巧设置了正确的值,现在我也可以检索数据字段了
希望这可能会帮助其他面临类似问题的用户无需拆分您的值,您只需这样做即可
var element = $(' <option data-type1="" data-type2=""></option>');
var元素=$('');
只需使用数据(任意属性)添加尽可能多的字段
设置-$(元素)。数据(“类型1”,值)代码>
获取-$(“#dropdownID:selected”).data(“type1”)代码>我已经更改了填充代码,但是当我去取回数据时,它仍然显示并且未定义。var元素=$('');
var str = $(this).val();
var substr = str.split('--');
var time = substr[0];
var TID = substr[1];
var element = $('<option></option>');
element.val('id').text('uiName');
$(element).data("type", 'mytype');
var element = $(' <option data-type1="" data-type2=""></option>');