jQuery的VAL()返回不同的结果
HTML的片段(与选择):jQuery的VAL()返回不同的结果
<table id='xxx'>
<tr>
<td>
<select id="obj_z" name="abc_obj_x" style="width: 200px">
<option value="XXXX" >---</option>
<optgroup label="cer">
<option value="BBBB"> QQQQ2</option>
</optgroup>
<optgroup label="car">
<option value="AAAA"> QQQQ1</option>
</optgroup>
</select>
</td>
<td>
<select id="abc">
<option value="BBBB1"> QQQQ1</option>
<option value="BBBB2"> QQQQ2</option>
<option value="BBBB3"> QQQQ3</option>
</select>
</td>
</tr>
</table>
JS代码:
main_table_id = '#xxx'; //TABLE ID
$("#obj_z").change(function()
{
alert($(main_table_id + ' select').eq(0).val()); // GET selected option value (way by eq)
alert($('#obj_z').val()); // GET selected option value - Direct way
});
我是否会选择选项QQQQ2
我们的结果:
First alert : X
Second alert : BBBB
我怎么能通过第一次警报真正价值?
原因:浏览器保留旧文件。
解决方案:HOLD CTRL + F5。 (清洁浏览器缓存),而我们的浏览器加载最新版本的文件
我们选择选项QQQQ2
我们的结果是:
First alert : BBBB
Second alert : BBBB
您有无效的标记那里。 select
元素不能是table
元素的直接后代。
通过添加适当的tr
和td
元素来修复您的HTML,使您的脚本按预期工作。
<table id='xxx'>
<tr><td> <!-- open row and cell element -->
<select id="obj_z" name="abc_obj_x" style="width: 200px">
[...]
</select>
</td></tr> <!-- close cell and row element -->
</table>
我希望失踪tr
/td
是在OP的一部分俯瞰,但因为它是与代码的唯一问题发表我提出这个作为一个答案。尽管如此,请务必禁用缓存或按Ctrl + F5开发和测试代码时。
感谢您的建议,我忘记了tr,当时我正在重写代码:) –
当然。 JSfiddle实际上每天都停止为我工作。 '=]' –
接受谢谢浪费一些时间:) –
为什么不是$(this).val()? tr和td在哪里? – mplungjan
不是,因为我想从表中获得所有选择值:) 它是一个示例:) –
但为什么在我的浏览器中返回其他值:)? –