如何使多个工作在这种情况下
How to make multiple working on this case
Javascript
$(".show").change(function(){
if ($(this).val() == "1") {
$(".text_area").show();
}
else {
$(".text_area").hide();
}
});
我想将此代码用于此类的所有元素,但是,当我选择对所有元素都有效的"值为1"的选项时。请帮忙。非常感谢。这里是演示点击这里
使用$(this).next()
:
$(".show").change(function () {
if ($(this).val() == "1") {
$(this).next(".text_area").show();
} else {
$(this).next(".text_area").hide();
}
});
你必须使用关键字this
。$(this)
在选择器的上下文事件中工作。
因为您有类名作为选择器,所以您应该注意它返回一个集合。这意味着,如果您有多个元素,那么它将引用所有元素,而this
则引用应用于集合中当前选择器的事件。
如果您碰巧更改了html的顺序,例如将文本区域放在选择框之前,它将不起作用。因此,作为上一个答案的替代方案,您可以将您的组包装成div:
<div class="container">
<select class="show">
<option value="0">NO</option>
<option value="1">YES</option>
</select>
<textarea class="form-control text_area" type="text" name="text_area" placeholder="Write something" rows="5" cols="50"></textarea>
</div>
当你要显示/隐藏文本区域时,你可以做:
$(this).closest('.container').find('.text_area').show();
或
$(this).closest('.container').find('.text_area').hide();
下面是一个演示:http://jsfiddle.net/n1fjo6qu/13/
相关文章:
- 如何解决这种情况下的非法调用类型错误
- 为什么在这种情况下,“This”确实充当javascript函数中的私有成员
- 在这种情况下,如何正确对齐显示
- 为什么jQuery悬停方法在这种情况下不起作用
- 在这种情况下,如何获取选定的表tr行
- 如何使多个工作在这种情况下
- 在这种情况下如何使用闭包
- 为什么在这种情况下要向JQuery添加两个链接
- JavaScript while循环没有'不能在有条件的情况下工作
- 为什么push方法没有'在这种情况下不起作用:[].推
- 在这种情况下,*[Symbol.iterator]的含义是什么
- 在这种情况下,调用阻止默认值
- 如何停止两个按钮执行相同的工作?在这种情况下,它们都会滚动到顶部
- 在这种情况下使用onclick事件处理程序可以接受吗
- 在这种情况下,init() 函数如何工作
- 在这种情况下,我如何使load more按钮工作
- 我不明白排序方法在这种情况下是如何工作的,我认为它是按字母顺序工作的,但是 #39;光线里的字不是,为什么
- 在这种情况下,递归是如何工作的
- 在这种情况下,JavaScript闭包是如何工作的
- 在这种情况下,似乎不能让ng-model工作