我认为使用最接近的DOM会发现DOM下去不是吗?
我正在尝试在输入具有焦点时找到span元素。当焦点正确但无法找到范围时,我能够获得输入的值。
在我的HTML中我有类似的东西
<div class="form-group">
<label for="card-holder-name">Card Holder Name: <span>eafsdafasdf</span></label>
<input type="text" class="form-control card-holder-name" id="card-holder-name">
</div>
在jquery中
$(".card-holder-name").on('focusout', function(){
var inputValue = $(this).val();
console.log($(this).closest('label').find('span').text();
});
我尝试使用console.log($(this).closest('label').text());
找到标签,但没有运气。
我在这里做错了什么?
提前致谢
答案 0 :(得分:4)
.closest()
确实上了DOM,但是你正在尝试对抗兄弟姐妹。
在这种情况下使用.prev()
:
$(this).prev('label').find('span').text()
答案 1 :(得分:1)
您更正了,$.closest()
遍历DOM并$.find()
遍历。但是,您遇到的问题是label[for='card-holder-name']
是兄弟到input.card-holder-name
。
对于您正在使用的特定HTML,您可以使用$(this).prev("label")
或$(this).parent().find("label")
。