使用最接近时,jQuery无法获取输入字段的值

诺曼

keyHash当我单击class链接时,我试图获取class的输入字段的值loadKey但是,我一直得到的是undefined

这是怎么做的?这不行吗?

小提琴

<div class="accounts hash">
    <input type="text" class="input-tiny keyHash">
    <i class="icon-plus loadKey">Click</i>
</div>

$('.loadKey').live('click', function() {

    alert($(this).closest('.keyHash').val());

});
Kartikeya khosla

根据.closest()docs,对于集合中的每个元素,通过测试元素本身并遍历DOM树中的祖先,获得与选择器匹配的第一个元素,但此处输入的类input-tiny和keyHash不是祖先,而是其祖先同胞然后在这种情况下,请尝试以下答案。

尝试.siblings()如下所示使用

$('.loadKey').click(function() {
    alert($(this).siblings('.input-tiny.keyHash').val());
});

演示

根据你的HTML结构.siblings()如上图所示将工作得很好,但如果你有其他元素类投入很小,keyHash它们的兄弟姐妹,.loadKey然后尝试:last选择:

$('.loadKey').click(function() {
   alert( $(this).siblings('.input-tiny.keyHash:last').val() );
});

演示

或者

用法.prev()如图所示:

$('.loadKey').click(function() {
    alert($(this).prev('.keyHash').val());
});

演示

或者

.prevAll():first选择器一起使用如下所示:

$('.loadKey').click(function() {
   alert( $(this).prevAll('input:text[class="input-tiny keyHash"]:first').val() );
});

演示

或者

用法.parent()如图所示:

$('.loadKey').click(function() {
   alert( $(this).parent().children('input:text[class="input-tiny keyHash"]').val())
});

演示

不要使用.live()它的deprecated since jquery version 1.7(请参阅此处),而是使用.on()如下所示的方法:

$(document).on('click','.loadKey',function() {
    alert($(this).prev('.keyHash').val());
});

注意:-上面显示的.on()事件委托)示例仅在使用jquery在DOM内部动态添加html时使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章