我是jQuery的新手,我认为这是一个基本问题。我在谷歌和jQuery网站上搜索了关于“父母”和“孩子”的信息,但是我无法用言语表达我想要完成的事情。
假设我有以下标记:
<div>
<input type="text" value="John Doe" />
<a href="#" class="clearButton">clear</a>
</div>
<div>
<input type="text" value="Jane Doe" />
<a href="#" class="clearButton">clear</a>
</div>
<div>
<input type="text" value="Joe Smith" />
<a href="#" class="clearButton">clear</a>
</div>
我本质上想写一些jQuery,使每个“clearButton”链接清除其兄弟输入的点击值。这是可能的,因为我的标记?或者我是否需要在每个输入或每个div上使用唯一标识符?是否可以接收单击,然后使用“this”命令选择正确的兄弟输入?我使用兄弟代码组合了一些我自己的代码,但它立刻清除了所有输入。
非常感谢任何相关信息的提示或链接! 谢谢!
答案 0 :(得分:8)
如果链接始终位于输入字段旁边:
$('.clearButton').click(function() {
$(this) // the clearButton
.prev() // get the input field
.val(''); // clear its value
return false; // disable default link action (otherwise # adds to url)
});
答案 1 :(得分:5)
$(document).ready(function () {
$('.clearButton').click(function () {
$(this).parent().find('input').val('');
})
});
答案 2 :(得分:4)
您可能只需要将.first()
附加到您的代码中。看起来应该是这样的:
$('.clearButton').click(function() {
$(this).siblings().first().val('');
});
答案 3 :(得分:1)
$('.clearButton').click(function () {
$(this).sibling('input').val('');
});