我知道这是一个重复的问题,但这个问题对我没有帮助,因为我的问题有点不同。
下面是我的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>
没有显示。
我现在该怎么办?
4条答案
按热度按时间dxxyhpgq1#
类选择器用作
.class
,类名前面有.
。如果没有事件处理程序,
$(this)
不能引用select
元素,它引用window
元素。使用以下代码,
Demo
xesrikrc2#
在您的示例中,
this
不引用类为selector
的元素。它将仅引用window
。修改代码如下,km0tfn4u3#
老兄,没必要这么复杂
HTML
JavaScript
cx6n0qe34#
如果没有事件上下文,
$(this)
就没有意义。此外,这种说法是错误的:应写成:
或
在这种情况下,您可以这样写: