我如何添加一个jQuery .data()属性到一个下拉列表选项元素 [英] How can I add a jQuery .data() attribute to a dropdownlist option element

查看:143
本文介绍了我如何添加一个jQuery .data()属性到一个下拉列表选项元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图使用jQuerys .data()添加一些额外的数据到下拉列表中的元素,下拉列表是填充属性和我想要的ID在那里,但是当我尝试访问数据时显示未定义。



人口代码。

  $ .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
}));
});
});

存取码

 < ($(this).val()!=''){

var time(code)$(ddl).bind('change',function(){
= $(this).val();

showConfirmRequestTutorCallDialogue(d,time,$(ddlDurationSelector).val(),$(this).data(TID),$(ddlStudiesSelector)。 val())
}
});


解决方案

从我的研究看来,这是不可能的.data()需要位于不在子部件上的元素上。所以它不能附加到< option> 元素



我所做的是将数据包含在当值被访问时,值字段会将其分开。

设置代码

  var element = $('< option> ;< /选项>'); 
element.val(i.StartTime + - + TID).html(i.StartTime +' - '+ i.EndTime);

存取码

  var str = $(this).val(); 
var substr = str.split(' - ');
var time = substr [0];
var TID = substr [1];


I am trying to add some extra data using jQuerys .data() to a element on a dropdownlist, the dropdown list is populating property and the ID I want is there, but when I try and access the data is showing up and undefined.

Population code.

 $.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
            }));
        });
    });  

access code

$(ddl).bind('change', function() {
        if($(this).val() != '') {

            var time = $(this).val(); 

            showConfirmRequestTutorCallDialogue(d, time, $(ddlDurationSelector).val(), $(this).data("TID"), $(ddlStudiesSelector).val())
        }
    });

解决方案

So looks from my research that this is not possible the .data() needs to be on a element not on a sub part. So it cant be attached to a <option> element

What I did instead was to include the data within the value field then split it out when the value was accessed.

Set Code

       var element = $('<option></option>');
       element.val(i.StartTime +"--" +TID).html(i.StartTime + ' - ' + i.EndTime);

Access Code

        var str = $(this).val();
        var substr = str.split('--');
        var time = substr[0];
        var TID = substr[1];

这篇关于我如何添加一个jQuery .data()属性到一个下拉列表选项元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆