内相邻输入获取文本我有我的页面上的组件,它看起来像这样:jQuery的,从一个div
<div id="componentList">
<div class="componentPair">
<div class="left">
<input type="text" class="part" placeholder="PART NUMBER">
</div>
<div class="right">
<input type="text" class="serial" placeholder="SERIAL NUMBER">
</div>
</div>
</div>
的组件列表可以嵌套在多个组件对。执行搜索时,如果零件号不存在,则无法查询序列号,因此,在.serial
字段上执行keyup
事件时,我需要从part number
字段中获取文本。我会将其存储在数据模型中,但通过引用当前的串行字段,我应该能够遍历到部件号字段。
以下是我已经试过了,当我的页面加载我绑定的串行领域的keyup事件,我通过this
的选择,所以我必须在getData()
参考(发件人)电流场:
$(document).on("keyup", '.serial', function() { getData(this, "SERIAL") });
然后在getData中,我希望能够将我的DOM结构遍历到当前的componentPair
组,然后遍历到左边的div并从Part Number输入字段中获取值。
这里是我的尝试:
function getData(elem, type) {
var code = ""
var serial = ""
if(type === "SERIAL") {
console.log(elem.closest('input[class^="part"]'))
serial = elem.value
}
... Other erroneous code to perform the search
}
正如你所看到的,这里我用console.log(elem.closest('input[class^="part"]'))
找到与类的part
,最接近的组件阅读jQuery的文档,我相信这应该工作后,但我得到undefined
函数错误。然后我尝试使用parent()
选择器和parentsUntil()
选择器,但它们中的每一个都抛出undefined
函数错误。
如果我控制台日志,elem
我得到:
<input type="text" class="serial" placeholder="SERIAL NUMBER">
这是我所期望的,所以我不明白为什么我不能用elem.parent().parent()
遍历到componentPair
,然后潜入树结构把信息拉出来。
我正在使用jQuery 1.11.3,任何帮助将不胜感激。
谢谢您的回答,这非常有意义。我只是尝试了这一点,我得到'find'不是一个函数。 – Alex
这很奇怪,因为'nearest()'总是会返回一个jQuery对象。你能告诉我你使用的代码吗? –
当然,现在更新我的问题 – Alex