var selObj = document.getElementById("fence");
selObj.options.length = 0;
var arr = new Array();
for (var i = 0; i < fencelist.length(); i++) {
if (fencelist.elements[i].value.o_fencetype == type) {
arr.push(fencelist.elements[i].value);
}
}
if (arr.length > 0) {
for (var i = 0; i < arr.length; i++) {
var option = new Option(arr[i].o_fencename,arr[i].o_fenceid);
option.radius = arr[i].o_radius;
selObj.options.add(option);
}
}
}
向ID为fence的select中添加option以及自定义属性
var fence = $("#fence option:selected");
var radius = fence.attr("radius");
alert(radius);
获取ID为fence的select当前选中项的自定义属性radius的值
在IE8有用,在IE9,新型浏览器失效,提示Undefine,这是为什么?
6 个解决方案
#1
var radius = fence.attr("radius"); 这句是获取属性radius吧, 你还没添加就去获取 肯定undefined
添加自定义的应该是 fence.attr("radius","str");
添加自定义的应该是 fence.attr("radius","str");
#2
参考
<select id="s"></select>
<script src="http://www.w3school.com.cn/jquery/jquery-1.11.1.min.js"></script>
<script>
var d=$('#s');
for(var i=0;i<5;i++)d.append('<option radius="'+i+'">'+i+'</option>')
</script>
<input type="button" value="get" onclick="alert($('#s option:selected').attr('radius'))"/>
#3
var option = new Option(arr[i].o_fencename,arr[i].o_fenceid);
option.radius = arr[i].o_radius;
selObj.options.add(option);
是添加了自定义属性,再去获取的,IE8有效,IE9失效
option.radius = arr[i].o_radius;
selObj.options.add(option);
是添加了自定义属性,再去获取的,IE8有效,IE9失效
#4
设置的时候这样:
option.setAttribute('radius',arr[i].o_radius) ;
#5
用jquery添加。 原生JS添加option自定义属性不好用
#6
问题解决了,分享给大家吧....
我之前是用JS为Select动态添加自定义属性的,然后用Jquery获取Select选中项的自定义属性值,在IE8有效,在IE9失效;
在网上找了很多方法,也没有解决,后来尝试用Jquery为Select动态添加自定义属性,用Jquery获取Select选中项的自定义属性值,
经测试IE9,新型浏览器,都有效,由此得出,Jquery和JS在某些方面,存在不兼容,如果要为Select动态添加自定义属性,要么都 用JS,要么都用Jquery,可以减少不必要的麻烦!
我之前是用JS为Select动态添加自定义属性的,然后用Jquery获取Select选中项的自定义属性值,在IE8有效,在IE9失效;
在网上找了很多方法,也没有解决,后来尝试用Jquery为Select动态添加自定义属性,用Jquery获取Select选中项的自定义属性值,
经测试IE9,新型浏览器,都有效,由此得出,Jquery和JS在某些方面,存在不兼容,如果要为Select动态添加自定义属性,要么都 用JS,要么都用Jquery,可以减少不必要的麻烦!
#1
var radius = fence.attr("radius"); 这句是获取属性radius吧, 你还没添加就去获取 肯定undefined
添加自定义的应该是 fence.attr("radius","str");
添加自定义的应该是 fence.attr("radius","str");
#2
参考
<select id="s"></select>
<script src="http://www.w3school.com.cn/jquery/jquery-1.11.1.min.js"></script>
<script>
var d=$('#s');
for(var i=0;i<5;i++)d.append('<option radius="'+i+'">'+i+'</option>')
</script>
<input type="button" value="get" onclick="alert($('#s option:selected').attr('radius'))"/>
#3
var option = new Option(arr[i].o_fencename,arr[i].o_fenceid);
option.radius = arr[i].o_radius;
selObj.options.add(option);
是添加了自定义属性,再去获取的,IE8有效,IE9失效
option.radius = arr[i].o_radius;
selObj.options.add(option);
是添加了自定义属性,再去获取的,IE8有效,IE9失效
#4
设置的时候这样:
option.setAttribute('radius',arr[i].o_radius) ;
#5
用jquery添加。 原生JS添加option自定义属性不好用
#6
问题解决了,分享给大家吧....
我之前是用JS为Select动态添加自定义属性的,然后用Jquery获取Select选中项的自定义属性值,在IE8有效,在IE9失效;
在网上找了很多方法,也没有解决,后来尝试用Jquery为Select动态添加自定义属性,用Jquery获取Select选中项的自定义属性值,
经测试IE9,新型浏览器,都有效,由此得出,Jquery和JS在某些方面,存在不兼容,如果要为Select动态添加自定义属性,要么都 用JS,要么都用Jquery,可以减少不必要的麻烦!
我之前是用JS为Select动态添加自定义属性的,然后用Jquery获取Select选中项的自定义属性值,在IE8有效,在IE9失效;
在网上找了很多方法,也没有解决,后来尝试用Jquery为Select动态添加自定义属性,用Jquery获取Select选中项的自定义属性值,
经测试IE9,新型浏览器,都有效,由此得出,Jquery和JS在某些方面,存在不兼容,如果要为Select动态添加自定义属性,要么都 用JS,要么都用Jquery,可以减少不必要的麻烦!