输入后选择Div的问题

时间:2016-08-18 23:37:38

标签: javascript jquery

我尝试了所有这三个但是在动态输入后无法向span添加文本。你能告诉我我做错了吗?

$(this).next('.error').html('Becareful Baby!');
$(this).closest('br').next('.error').html('Becareful Baby!');
$(this).closest('.error').html('Becareful Baby!');

$("input").on("keydown", function(){
  $(this).next('.error').html('Becareful Baby!');
  $(this).closest('br').next('.error').html('Becareful Baby!');
  $(this).closest('.error').html('Becareful Baby!');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="fname" id="fname" class="nametxt" />
<br />
<span class="error"></span>

2 个答案:

答案 0 :(得分:0)

$(this).next()只会在您选择的元素之后获取该元素。然后提供选择器将进一步缩小结果范围。输入元素后面的元素是<br/>,这就是.next()给你的。

我建议使用$(this).siblings('.error')。这是一个例子:https://jsfiddle.net/77nvepos/1/

答案 1 :(得分:0)

您可以使用next().next('.error')。这将使您在选择两个元素之后获得元素。 Documentation

$("input").on("keydown", function(){
  $(this).next().next(".error").html('Becareful Baby!');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="fname" id="fname" class="nametxt" />
<br />
<span class="error"></span>
<span class="error"></span>