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中未定义错误的原因是什么。
由于
答
里面的更改处理this
指select
元件,但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);
});
})
你应该加上'自定义的数据'in前属性:'数据LANGID = “1”'。那么它的有效HTML5 – nbar