如何在javascript中获取焦点元素的Id

时间:2016-07-03 16:39:37

标签: javascript jquery

我的头衔可能并不能真正表达我想要达到的目标,所以我希望读者可以先回答我的问题。 我的页面上有很多输入,具有不同的id,我想获得用户关注的特定输入的ID,并在此输入失去焦点时触发事件。我可以通过显式声明ID并将onblur事件处理程序附加到它来实现这一点,但这将导致编写大量代码,因为我在同一页面上有太多输入。现在我有以下代码

var \$Title = $('#draft-product_title')
        \$Title.on('blur',function(event){
            eventId = event.target.id;
            draftEventHandler(\$Title,eventId);
        });

这是我的输入之一,我有更多的30输入所以我必须复制它30次这是如此疯狂我需要一种方法使它如此灵活,我试过这个但没有运气

var \$selectorId;
$('body').on('click',function(event) {
            \$focusElementId = document.activeElement.id;
             \$selectorId = ('#'+\$focusElementId)
            console.log(\$selectorId);
         });

        \$selectorId.on('blur',function(event){
            eventId = event.target.id;
            draftEventHandler(\$selectorId,eventId);
        });

但是这个代码错误选择器id没有定义,而是定义了console.log() 任何有关如何使这项工作的帮助,也对任何其他想法开放,并且

2 个答案:

答案 0 :(得分:2)

  

使用:input选择器选择所有input元素

this中的

event-handler上下文将element event invoked因此this.id将返回id属性element ""$(':input').on('focus', function() { console.log(this.id); }).on('blur', function() { console.log(this.id); });(空)



<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<form action="action_page.php">
  First name:
  <br>
  <input type="text" id="name" value="Mickey">
  <br>Last name:
  <br>
  <input type="text" name="lastname" id="lastname" value="Mouse">
  <br>
  <br>
  <select>
    <option value="volvo">Volvo</option>
    <option value="saab">Saab</option>
    <option value="mercedes">Mercedes</option>
    <option value="audi">Audi</option>
  </select>
  <input type="submit" value="Submit">
</form>
&#13;
ALTER TABLE Persons DROP PRIMARY KEY ;
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您可以将事件附加到焦点元素。或者只是使用:focus选择器获取它。

&#13;
&#13;
(function() {
  $(document).on("click", ":focus", function() {
    console.log(this.id);
  })
})();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id="id1" type="test1" value="id1">
<input id="id2" type="test2" value="id2">
&#13;
&#13;
&#13;