javascript - 如何从事件处理程序获取 jquery 选择器

标签 javascript jquery html css

我在页面上有几个输入元素,其中一个(第一个)是我可以输入任何其他元素的特定 ID 的地方。

我希望我的代码设置方式如下:当我关注任何其他元素并且其 id 与第一个元素中输入的文本匹配时,它会突出显示,并且指示我选择正确元素的文本是显示在其中。

我使用第一个输入元素中输入的文本来形成我要查找的 ID。

到目前为止,这就是我所拥有的。

$(document).ready(function() {
     var selector; 
     
     $('#selector').on('input', function() {
         selector = $(this).val();
     });
     $('#' + selector).on('focus', function() {
         if ($(this).is('#' + selector)) {
             $(this).val("that's me: " + selector).css('border', 'solid red 1px');
         }
     }).on('blur', function() {
         $(this).val('').css('border', 'solid #555 1px');
     });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input id='selector' type='text' /><br />
<input id='target1' type='text' /><br />
<input id='target2' type='text' /><br />
<input id='target3' type='text' /><br />

在第一个输入中输入任何目标输入元素的 ID 后,我设置了“选择器”值。但是,我的焦点处理程序似乎没有为任何其他输入元素触发,并且控制台上没有报告错误。可能是什么问题。

最佳答案

不要使用 $('#' +selector) 使用 $('input[id^=target]') (或添加一个公共(public)类)和你的其他逻辑保持不变

$(document).ready(function() {
     var selector; 
     
     $('#selector').on('input', function() {
         selector = $(this).val();
     });

     $('input[id^=target]').on('focus', function() {
         if ($(this).is('#' + selector)) {
             $(this).val("that's me: " + selector).css('border', 'solid red 1px');
         }
     }).on('blur', function() {
         $(this).val('').css('border', 'solid #555 1px');
     });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input id='selector' type='text' /><br />
<input id='target1' type='text' /><br />
<input id='target2' type='text' /><br />
<input id='target3' type='text' /><br />

关于javascript - 如何从事件处理程序获取 jquery 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57383460/

相关文章:

javascript - jQuery UI 数字微调器事件问题

javascript - 如何在三个js中高效多次渲染一个网格?

javascript - 这两条 jQuery 行会产生不同的结果吗?

jquery - 如何向左滚动屏幕(例如-100%)

javascript - href 内的 flash 元素

html - 如何禁用 HTML5 视频标签搜索?

javascript - 为什么 Angular 在正确更新模型时不通过向 ng-options 中的 <option> 标记添加 'selected' 属性来更新 DOM?

javascript - Enyo onbeforeunload 事件

javascript - 如何使用 Play Framework 和 jQuery 上传和显示文件?

jquery - 单击图标时带有附加信息的按钮