我在通过jQuery选择下一个提交按钮时遇到问题。
我有这样的事情:
$('.description-part').on('change', 'textarea', function() {
$(this).find('.button').addClass('test'); // not working
$(this).next('.button').addClass('test'); // not working
$(this).closest('.button').addClass('test'); // not working
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="description-part">
...
<textarea></textarea>
<div></div>
<input type="submit" name="save" class="button">
...
</div>
&#13;
答案 0 :(得分:3)
只需使用nextAll()
,因为this
为textarea
而不是div
,<div>
和{之间有textarea
{1}},所以button
也不会工作:
.next()
或者您可以这样使用$('.description-part').on('change', 'textarea', function() {
$(this).nextAll('.button').addClass('test');
});
:
.closest()
工作代码段
$('.description-part').on('change', 'textarea', function() {
$(this).closest('.description-part').find('.button').addClass('test');
});
&#13;
$(function() {
$('.description-part').on('change', 'textarea', function() {
$(this).closest('.description-part').find('.button').addClass('test');
});
});
&#13;
.test {background: red;}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="description-part">
...
<textarea></textarea>
<div></div>
<input type="submit" name="save" class="button" />...
</div>
&#13;
$(function() {
$('.description-part').on('change', 'textarea', function() {
$(this).nextAll('.button').addClass('test');
});
});
&#13;
.test {background: red;}
&#13;