我对jquery很新,需要一些帮助。我正在尝试在输入文本框时更改css元素。我已经在我的文本框中应用了一个css类,我的文本框周围有几个div标签。
当用户选择文本框时,我想更改所需的div标签。
这就是html的外观
<div class="left">
<div class="right">
<input name="myTextBoxID" type="text" id="myTextBoxID" class="myTextBox" />
<span id="rfInput"></span>
</div>
</div>
我的jquery看起来像这样
<script language="javascript" type="text/javascript">
$(function () {
$('.myTextBox').focus(function () {
$('.box.left').addClass("active");
}).blur(function () {
$('.box.left').removeClass("active");
});
});
</script>
现在jquery正在工作并改变了焦点和模糊的类,但是它会影响所有元素,而不是class =“myTextBox”如何让jquery附加到所有元素但是只激发css更改到元素外部的选定文本框类?
任何帮助都会很棒!
答案 0 :(得分:2)
<script language="javascript" type="text/javascript">
$(function () {
$('.myTextBox').focus(function () {
$(this).closest('.left').addClass("active");
})
.blur(function () {
$(this).closest('.left').removeClass("active");
});
});
</script>
this
指的是收到该事件的元素。
因此,您将this
包装到jQuery对象$(this)
中,并使用您指定的类访问closest()
祖先。
.closest()
- http://api.jquery.com/closest/
答案 1 :(得分:0)
你不是那么清楚,所以,在这里,我的猜测......
$(function () {
$('.myTextBox').focus(function () {
$(this).closest('.left').addClass("active");
}).blur(function () {
$(this).closest('.left').removeClass("active");
});
});