我想在点击第一个输入后用文本输入替换密码输入,我的代码创建了它,但它没有关注新输入,我想改变它。
这是我的代码。
$('.input_center input:text').click(function(){
var padre = $(this).parent();
var passInput = $(document.createElement("div"));
passInput.html('<input type="password">');
padre.append(passInput);
passInput.focus();
$(this).remove();
});
passInput.focus()没有做焦点,所以我不知道如何完成它。
答案 0 :(得分:6)
passInput
是<div>
元素,而不是<input>
,这就是它无法获得焦点的原因。
将其更改为:
passInput.find("input").focus();
你实际上可以将整个函数重写为一个链式语句,如下所示:
$(this)
.parent()
.append($(document.createElement("div"))
.append($('<input type="password">').focus())
)
.end()
.remove();
尽管如此,我还不知道在将元素添加到DOM之前它是否适用于.focus()
元素。
答案 1 :(得分:3)
尝试
var v = $('<div><input class="pwd" type="password" /></div');
padre.appendTo(v);
$('.pwd').focus();
添加然后调用代码以获得焦点可能会有所帮助。