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());
});
根据.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] 删除。
我来说两句