【问题标题】:jQuery - event target multiple id selectors?jQuery - 事件目标多个 id 选择器?
【发布时间】:2021-07-05 18:53:01
【问题描述】:

这是我的代码:

$(document).ready(function() {
    $('#test-input, #input').on('change', function(e) {
        var linkElement = $('#the-link');

        // get value user typed in
        var inputFieldValue = e.target.value;

        var input = e.target.value
        // compose route using baseRoute (generated by Laravel)
        var baseRoute = linkElement.data('baseroute');
        // set it as href
        
        linkElement.attr('href', baseRoute + inputFieldValue + input);
        
    });
});

我需要从 ID 为 #test-input#input 的这两个输入中获取价值,现在它只能从最后一个 #input 中获取。

我怎样才能e.target 得到他们两个?请帮忙

【问题讨论】:

  • 我没有看到任何应该让它只从#input 获取值的东西。这就是为什么您使用e.target.value 而不是硬编码特定元素的原因。
  • 为什么需要两个变量inputFieldValueinput 引用同一个东西?
  • 所以你在第一个输入改变时得到linkElement.attr('href', baseRoute + "A" + "A");,在第二个输入改变时得到linkElement.attr('href', baseRoute + "B" + "B");
  • 只需执行const value1 = $('#test-input').val(), value2 = $('#input').val(); 并完全忽略事件对象
  • 添加到@charlietfl 评论:然后linkElement.attr('href', baseRoute + value1 + value2);

标签: javascript jquery dom jquery-selectors dom-events


【解决方案1】:

只需使用 id 选择器获取每个值并忽略事件对象。事件对象对其他元素一无所知。它仅引用发生特定更改的元素

const value1 = $('#test-input').val(), 
      value2 = $('#input').val();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多