我尝试了所有这三个但是在动态输入后无法向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>
答案 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>