標籤:
Jquery擷取select option動態添加自訂屬性值失效2014/12/31 11:49:19 中國學網轉載 編輯:李強http://www.xue163.com/588880/39096/390963333.html
為了協助網友解決“Jquery擷取select optio”相關的問題,中國學網通過互連網對“Jquery擷取select optio”相關的解決方案進行了整理,使用者詳細問題包括:jqueryselectie9 function GetFenceItemData(type) {
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,這是為什嗎?
,具體解決方案如下:
解決方案1:
var radius = fence.attr("radius"); 這句是擷取屬性radius吧, 你還沒添加就去擷取 肯定undefined
添加自訂的應該是 fence.attr("radius","str");
解決方案2:
參考
<select id="s"></select>
<script src="http://www.wosoni.com/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:
引用 1 樓 Ragin 的回複:
var radius = fence.attr("radius"); 這句是擷取屬性radius吧, 你還沒添加就去擷取 肯定undefined
添加自訂的應該是 fence.attr("radius","str");
var option = new Option(arr[i].o_fencename,arr[i].o_fenceid);
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,可以減少不必要的麻煩!
Jquery擷取select option動態添加自訂屬性值失效