我有一个简单的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 :(得分:9)
更改处理程序this
内部引用select
元素,但langid
位于所选的option
元素中。因此,您需要找到所选的option
,然后在该元素上调用.attr("langid")
jQuery(function () {
$(".translanguage").change(function () {
var value = $(this).find('option:selected').attr("langid");
alert(value);
});
})
演示:Fiddle
答案 1 :(得分:2)
尝试这样的事情
$( ".translanguage" ).change(function() {
alert(this.options[this.selectedIndex].getAttribute('langid'));
});
答案 2 :(得分:2)
此脚本适合您。 见jsfiddle
$(function () {
$(".translanguage").change(function () {
var value = $( "select option:selected" ).attr("langid");
alert(value);
});
})
答案 3 :(得分: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);
});
});