已选择jQuery

已选择jQuery,jquery,selected,Jquery,Selected,我想看看选择菜单中的一个特殊选项的值是否等于1,然后隐藏另一个对象。我已经试了一整天了,但可能是因为我完全是jquery的初学者 我有一个从数据库填充的选择菜单。 如果id为1的选项已选择=已选择 然后我想在加载页面时隐藏另一个div 到目前为止,我得到的是: <select> <option id="3">test1</option> <option id="1" selected="selected">test2</option>

我想看看选择菜单中的一个特殊选项的值是否等于1,然后隐藏另一个对象。我已经试了一整天了,但可能是因为我完全是jquery的初学者

我有一个从数据库填充的选择菜单。 如果id为1的选项已选择=已选择 然后我想在加载页面时隐藏另一个div

到目前为止,我得到的是:

<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();
  }
});

});