Jquery: 如何将事件绑定到具有同级元素的元素?

Jquery: How to bind an event to element that has a sibling?

我希望将更改事件绑定到输入元素,但前提是它的下一个兄弟元素是 select 元素,这样当输入值更改时,如果它与中的任何选项匹配select 元素,则该选项将被 selected。我知道我可以将事件绑定到所有输入,然后检查它们是否每个都有 select 同级,但这在计算上更昂贵,所以我宁愿不这样做。有什么想法吗?

这是我目前使用的:

$("input").each(function () {
    var elmt = $(this);
    if (!elmt.next("select")) {
        return;
    }
    elmt.on("change", function () {
        if (elmt.next("select").has("option[value='"+elmt.val()+"']")) {
            elmt.next("select").val(elmt.val());
        }
        else {
            elmt.next("select").val("");
        }
    });
});

你也许可以 jquery .prev

$('inputs + select').prev().on(...);

试试看

https://api.jquery.com/prev/