我正在修改一个脚本,以便在打开CAPS lock时在密码字段上显示警告。
如果使用append()方法,我正在构建的元素就可以添加到页面中,但这不是很好的扩展性,因为它依赖于具有相关父元素的password字段。我想做的是将它添加到password字段中,但是当我添加时,它会显示为after()
以下是我目前掌握的情况:

$(document).ready(function(){
  $(":password").bind("keypress", function(e) {
    el = jQuery('<div/>', {
      id: 'caps_warning',
      text: 'CAPS lock is on'
    })

    kc = e.keyCode ? e.keyCode : e.which;
    sk = e.shiftKey ? e.shiftKey : ((kc == 16) ? true : false);

    if(((kc >= 65 && kc <= 90) && !sk) || ((kc >= 97 && kc <= 122) && sk)) {
      el.appendTo(e.currentTarget.parentElement);
    } else {
    }
  });
});

我想用[object Object]替换el.appendTo(e.currentTarget.parentElement);

最佳答案

e.currentTarget是一个dom节点,而不是jQuery对象。它也与this相同
尝试

$(this).after(el)

07-24 09:20