jQuery hide()不起作用

时间:2011-09-16 19:39:21

标签: jquery google-chrome hide

我试图使用hide隐藏下拉列表(选择元素)但不能。下面是我正在使用的jQuery代码。

$('.myClass').find('select[name=xyz]').hide();

chrome中的异常:对象xyz没有方法'hide'


对应的HTML

<div class="myClass">
        <select id="xyz" name="xyz">
                    <option>option1</option>
                    <option>option2</option>
                    </select>
        <select id="123" name="123">
                    <option>option3</option>
                    <option>option4</option>
                    </select>
</div>

4 个答案:

答案 0 :(得分:1)

编辑:我发现您现在已经在帖子中编辑了HTML,并添加了最初缺少的name属性。您的HTML和javascript适用于我this jsFiddle,所以如果它不适合您,那是因为您的页面中有其他错误或重复的ID或类似的东西。即便如此,我建议您使用我在下面建议的更简单的形式,因为它更简单,更快速,更安全。

之前的答案在编辑OP之前:

我看不到您要匹配的name属性。如果您想获取带有select ID的xyz代码,请使用此代码:

$("#xyz").hide();

ID在页面中非常独特,因此您可以直接解决它,无需执行所有其他操作即可找到它。如果您按照自己的方式进行操作,因为您的ID在页面中不是唯一的,那么您必须解决这个问题,因为在不同的浏览器中ID会产生不可预测的结果。

答案 1 :(得分:0)

没有[name=xyz]

将其更改为ID

$('.myClass #xyz').hide();

http://sandbox.phpcode.eu/g/1acce/1

答案 2 :(得分:0)

您的选择标记为xyz。

$('.myClass').find('select#xyz').hide();

或者更好

$('#xyz').hide();

jQuery [attribute=value]选择器搜索特定属性。

jQuery id selector将搜索元素的ID。

答案 3 :(得分:0)

您的选择

中没有名字
$('.myClass #xyz').hide();

如果您打算提交该名称,则必须添加该名称。最后,请注意:ID和属性一般不应以数字开头,而应以字母开头。

<div class="myClass">
        <select name="xyz" id="xyz">
                    <option>option1</option>
                    <option>option2</option>
                    </select>
        <select name="abc" id="abc">
                    <option>option3</option>
                    <option>option4</option>
                    </select>
</div>