已选择jQuery
我想看看选择菜单中的一个特殊选项的值是否等于1,然后隐藏另一个对象。我已经试了一整天了,但可能是因为我完全是jquery的初学者 我有一个从数据库填充的选择菜单。 如果id为1的选项已选择=已选择 然后我想在加载页面时隐藏另一个div 到目前为止,我得到的是:已选择jQuery,jquery,selected,Jquery,Selected,我想看看选择菜单中的一个特殊选项的值是否等于1,然后隐藏另一个对象。我已经试了一整天了,但可能是因为我完全是jquery的初学者 我有一个从数据库填充的选择菜单。 如果id为1的选项已选择=已选择 然后我想在加载页面时隐藏另一个div 到目前为止,我得到的是: <select> <option id="3">test1</option> <option id="1" selected="selected">test2</option>
<select>
<option id="3">test1</option>
<option id="1" selected="selected">test2</option>
<option id="2">test3</option>
</select>
<div id="hide">Hide me</div>
$("#1 option:selected").ready(function () {
$("#hide").hide();
});
任何帮助都将不胜感激。谢谢
/安德烈亚斯首先,你的身份证是无效的。它不应该以数字开头。为select元素提供一个id,找到所选元素并将其值检查为1,并显示/隐藏相应的div。您的代码可能有一些问题:
// assume your select has id="mySelect"
$(function() {
$('#mySelect').change(function() {
var value = $(this).val();
if (value == '1') {
$('#hide').hide();
} else {
$('#hide').show();
}
return false;
});
});
您在错误的对象上使用了事件-。应将ready应用于文档
ID不能以数字开头
您应该使用value属性而不是id属性。
最好使用.val来获取值
您应该为select提供一个id,以防在页面中添加另一个id。
总而言之:
<select id="foo">
<option value="3">test1</option>
<option value="1" selected="selected">test2</option>
<option value="2">test3</option>
</select>
<div id="hide">Hide me</div>
$(document).ready(function () {
if ($('#foo').val() != 1)
$("#hide").hide();
});
将与你所拥有的一起工作,但与其他人提出的观点相同-
HTML规范规定您不应该有以数字开头的ID
使用选项的值属性而不是id
您需要将代码放入一个函数中,该函数将在引发的更改事件时执行
为用户提供一个唯一标识它的id。
非常感谢你的快速回答。我很清楚你对我的例子的看法。我只是很快地写下了一个我试图做的简单概述的例子。明白了,下次我会更准确。我试过你的第一个例子,它几乎完美无瑕。我希望在所选值不是=1时隐藏div。好的,我已将==更改为=
$('#foo').change(function () {
if ($(this).val() != 1)
$("#hide").hide();
else
$("#hide").show();
});
$(function() {
$('select').change(function(){
if ($("option:selected",this).attr('id') == 1 ){
$("#hide").hide();
}
});
});