我知道这是一个重复的问题,但这个问题对我没有帮助,因为我的问题有点不同。
这是我的html
代码:
<select class="selector">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
<div class="show" style="display:none;"></div>
这是我的jQuery
代码:
if($('.selector').val()=="volvo")
$(this).next('.show').show();
所以,我想要的是,如果<selector>
具有值“volvo”,则其下一个div(具有“show”类)将显示,否则不显示。在这里,我没有使用任何change
事件。我希望在页面加载后发生这种情况。
我也试过了:
if($('.selector').val()=="volvo")
$(this).next().show();
但同样的结果,没有任何反应,<div>
没有出现。
我现在该怎么办?
答案 0 :(得分:4)
类选择器用作.class
,类名前面有.
。
$('.selector').val()
如果没有事件处理程序$(this)
无法引用select
元素,则它会引用window
元素。
使用以下代码
var $selector = $('.selector');
if($selector.val()=="volvo")
$selector.next('.show').show();
<强> Demo 强>
答案 1 :(得分:1)
在您的示例中,this
未引用具有类selector
的元素。它仅指window
。更改代码,
var selector=$('.selector');
if(selector.val()=="volvo")
selector.next().show();
答案 2 :(得分:-1)
多德。没有必要这么复杂
<强> HTML 强>
<select class="selector">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
<div class="show" style="display:none;"></div>
<强>的Javascript 强>
$(document).ready(function(){
if($('.selector').val()=="volvo")){
$('.show').show();
}
});
答案 3 :(得分:-1)
没有事件上下文$(this)
没有意义。此外,这种说法是错误的:
if($('selector').val()=="volvo")
应该写:
if($('.selector').val()=="volvo")
或
if($('select.selector').val()=="volvo")
在这种情况下,您可以写:
if($('select.selector').val()=="volvo")
$('.selector').next('.show').show();