选择事件的下一个输入

时间:2019-01-16 10:16:34

标签: javascript jquery dom-events

我有(一组)两个输入productcategory

产品之一是自动完成的。 选择产品后,我想填写类别。

event.target不是jquery对象的问题,因此看来我无法应用jQquery的.next("input")

这是我的代码:

var addedProduct = $(".produit:last > input");
addedProduct.autocomplete( {
        source: Object.keys(availableProducts),
        select: function(event, ui){
            var category = event.target.next("input"); // something like this ???
            category.value = availableProducts[ui.item.value]; //{"product1":"category1",...}
        }
    })

输入位置如下:

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以使用$(event.target)从事件目标创建一个新的jQuery对象。之后您将可以在其上致电.next

没有jQuery的另一种解决方案是使用本机DOM API。您可以使用nextElementSibling选择下一个元素。唯一的要求是您要定位的元素必须立即成为下一个元素。

编辑:从提供的DOM结构中,您可以使用.parent().next()选择父级的下一个元素。然后在这个新元素上使用.find()选择所需的输入。请注意,代码与DOM结构紧密相关。您可以使用id直接选择元素。

$(event.target).parent().next().find("input");