jquery:在下拉菜单中获取自定义属性的值

问题描述:

我有一个简单的JQuery代码。jquery:在下拉菜单中获取自定义属性的值

$(document).ready(function() { 
    $(".translanguage").change(function() { 
     var value = $(this).attr("langid"); 
     alert(value); 
    }); 
}); 

和我有html代码。

<select name="translanguage" class="translanguage"> 
    <option value="0">Please Select Language</option> 
    <option class="transoption" value="1" langid="1">Urdu</option> 
    <option class="transoption" value="2" langid="2">English</option> 
    <option class="transoption" value="3" langid="3">Arabic</option> 
    <option class="transoption" value="4" langid="4">Sindhi</option> 
</select> 

当我运行这个程序时,它在警告框中给出未定义的错误。我需要在我的选项tage中给出的langid的值。

那么在我的代码中有什么问题。 ?

其次,JQuery中未定义错误的原因是什么。

由于

+0

你应该加上'自定义的数据'in前属性:'数据LANGID = “1”'。那么它的有效HTML5 – nbar

里面的更改处理thisselect元件,但langid是在所选择的option元件。所以,你需要找到所选option,然后调用.attr("langid")该元素的

jQuery(function() { 
    $(".translanguage").change(function() { 
     var value = $(this).find('option:selected').attr("langid"); 
     alert(value); 
    }); 
}) 

演示:Fiddle

+0

感谢您的帮助... –

尝试这样的事情

 $(".translanguage").change(function() { 
      alert(this.options[this.selectedIndex].getAttribute('langid')); 
     }); 
+0

好,也工作。谢谢。 –

试试这个:

// jquery wont find the attr of langid, change the langid to id in html. 
$(document).ready(function() { 
    $(".translanguage").change(function() { 
    var value = $(this).attr("id"); 
    alert(value); 
    }); 
}); 

这个脚本将为你工作。 见jsfiddle

$(function() { 
    $(".translanguage").change(function() { 
     var value = $("select option:selected").attr("langid"); 
     alert(value); 
    }); 
})