我有以下HTML选择框片段:
<select id="Obj_cboscreen" class="menubarselect" name="page">
<option att="1stOption" value="0" selected="">abc</option>
<option att="2ndOption" value="1">def</option>
当我运行以下代码时:
var attribute = $('#Obj_cboscreen :selected').attr('att');
var name = $('#Obj_cboscreen :selected').html();
我得到1stOption和abc(分别)。
当我将选择框更改为其他选项时,例如:
<select id="Obj_cboscreen" class="menubarselect" name="page">
<option att="1stOption" value="0">abc</option>
<option att="2ndOption" value="1" selected="">def</option>
我之前获得了相同的输出结果。
“1stOption and abc”
现在我注意到了选中的=“”。这看起来不对,我在项目中环顾四周,我无法找到正在制作的地方,但它正在渲染。
我想知道为什么选择的选择器无法正常工作?
答案 0 :(得分:4)
以下代码适用于我 -
var attribute = $('#Obj_cboscreen :selected').attr("att");
var name = $('#Obj_cboscreen :selected').html();
alert(attribute + name);
您的代码有一些变化。
attr(att)
至attr("att")
$('#Obj_cboscreen:selected')
至$('#Obj_cboscreen :selected')
以下jsfiddle显示将“selected”属性添加到第二个选项时的代码。
答案 1 :(得分:4)
att有问题,我认为这应该用引号括起来, 像
var attribute = $('#Obj_cboscreen option:selected').attr("att");
在选中时缺少True,总是格式化你的html,因为有时它表现得很罕见
<select id="Obj_cboscreen" class="menubarselect" name="page">
<option att="1stOption" value="0">abc</option>
<option att="2ndOption" value="1" selected="true">def</option>
答案 2 :(得分:2)
这里看看这个 - 也许它会帮助你:
答案 3 :(得分:0)
var attribute = $('#Obj_cboscreen option[selected=true]').attr("att");
alert(attribute);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<select id="Obj_cboscreen" class="menubarselect" name="page">
<option att="1stOption" value="0">abc</option>
<option att="2ndOption" value="1" selected="true">def</option>
&#13;