Javascript 焦点不在textarea上工作

Javascript 焦点不在textarea上工作,javascript,jquery,html,Javascript,Jquery,Html,我正在创建一个页面,用户可以在其中添加问题及其解决方案,可以删除问题,还可以使用javascript中的DOM动态编辑问题。我想,每当用户点击编辑按钮的文本框出现获得自动对焦 这是我页面的javascript代码 var文本; var-answerText; 变量数组=[]; var answerArray=[]; var i=0; var j=10000; 函数addProblem(){ var body=document.getElementsByTagName('body')[0]; qu

我正在创建一个页面,用户可以在其中添加问题及其解决方案,可以删除问题,还可以使用javascript中的DOM动态编辑问题。我想,每当用户点击编辑按钮的文本框出现获得自动对焦

这是我页面的javascript代码

var文本;
var-answerText;
变量数组=[];
var answerArray=[];
var i=0;
var j=10000;
函数addProblem(){
var body=document.getElementsByTagName('body')[0];
questionText=document.getElementById('questionId')。值;
answerText=document.getElementById('answerId')。值;
questionArray.unshift(questionText);
answerArray.unshift(answerText);
var myContainer=document.getElementById('container');
var myDiv=document.createElement(“div”);
var questionLogo=document.createElement(“p”);
questionLogo.id=“questionLogo”;
var textNode=document.createTextNode(“问题:”);
var问题=document.createElement(“p”);
question.id=“问题”;
var questionDetail=document.createTextNode(questionArray[0]);
var deleteButton=document.createElement(“按钮”);
deleteButton.innerHTML=“删除”;
deleteButton.id=i;
var editButton=document.createElement(“按钮”);
editButton.innerHTML=“编辑”;
editButton.id=j;
var answerLogo=document.createElement(“p”);
answerLogo.id=“answerLogo”
var ansTextNode=document.createTextNode(“答案:”);
var answer=document.createElement(“p”);
answer.id=“answer”;
var answerDetail=document.createTextNode(answerArray[0]);
var mybr=document.createElement(“br”);
如果(i==0){
myContainer.appendChild(myDiv);
myDiv.appendChild(问题标识);
questionLogo.appendChild(textNode);
问题logo.appendChild(问题);
问题.附加儿童(问题详情);
myDiv.appendChild(answerLogo);
answerLogo.appendChild(ansTextNode);
answerLogo.appendChild(答案);
回答:追加儿童(回答细节);
answerLogo.appendChild(mybr);
myDiv.appendChild(删除按钮);
myDiv.innerHTML+='';
myDiv.appendChild(编辑按钮);
}
如果(i>0),则为else
{
myContainer.insertBefore(myDiv,myContainer.firstChild);
myDiv.appendChild(问题标识);
questionLogo.appendChild(textNode);
问题logo.appendChild(问题);
问题.附加儿童(问题详情);
myDiv.appendChild(answerLogo);
answerLogo.appendChild(ansTextNode);
answerLogo.appendChild(答案);
回答:追加儿童(回答细节);
答案:追加儿童(mybr);
myDiv.appendChild(删除按钮);
myDiv.innerHTML+='';
myDiv.appendChild(编辑按钮);
}
i++;
j++;
myDiv.childNodes[7]。addEventListener(“单击”,函数()){
var deletelement=document.getElementById(this.id);
deleteElement.parentNode.parentNode.removeChild(deleteElement.parentNode);
});
myDiv.childNodes[9]。addEventListener(“单击”,函数()){
var editElement=document.getElementById(this.id);
var quesEdit=editElement.parentNode.childNodes[1];
var queseditext=quesEdit.innerHTML;
var ansEdit=editElement.parentNode.childNodes[4];
var ansEditText=ansEdit.innerHTML;
var editDiv1=document.createElement(“div”);
editDiv1.id=“editDiv1”
var quesTextArea=document.createElement(“textarea”);
quesTextArea.innerHTML+=quesEditText;
quesTextArea.focus();
var saveButton1=document.createElement(“按钮”);
saveButton1.innerHTML=“保存”;
editDiv1.appendChild(quesTextArea);
editDiv1.innerHTML+='';
editDiv1.appendChild(saveButton1);
quesEdit.parentNode.replaceChild(editDiv1,quesEdit);
var editDiv2=document.createElement(“div”);
editDiv2.id=“editDiv2”
var ansTextArea=document.createElement(“textarea”);
ansTextArea.innerHTML+=ansEditText;
var saveButton2=document.createElement(“按钮”);
saveButton2.innerHTML=“保存”;
editDiv2.appendChild(ansTextArea);
editDiv2.innerHTML+='';
editDiv2.appendChild(saveButton2);
ansEdit.parentNode.replaceChild(editDiv2,ansEdit);
});
}
我尝试使用 quesTextArea.focus();
但如果questextArea是textarea的名称,则不起作用。请帮助我如何操作。

自动对焦
属性添加到textarea元素。因此,每当它被附加到DOM中时,都会在其中激活光标。

自动聚焦
属性添加到textarea元素。这样,每当它被附加到DOM中时,就会在其中激活光标。

var div=document.getElementById('parent');
var txt=document.createElement('textarea');
div.appendChild(txt);
txt.focus()

var div=document.getElementById('parent');
var txt=document.createElement('textarea');
div.appendChild(txt);
txt.focus()

尚未将“textarea”添加到要显示的窗口中,元素必须是文档对象树的一部分。如果不起作用,请添加50毫秒延迟

setTimeout(function(){e.focus();}, 50);

“textarea”尚未添加到要显示的窗口中,元素必须是文档对象树的一部分。如果不起作用,请添加50毫秒延迟

setTimeout(function(){e.focus();}, 50);

尝试以下方法:

var body=document.getElementsByTagName('body')[0];
var quesTextArea=document.createElement(“textarea”);
var button=document.createElement(“按钮”);
button.innerHTML=“单击我”;
按钮。addEventListener(“单击”,函数(e){
e、 预防默认值();
quesTextArea.focus();
});
身体。附属物儿童(quesTextArea);
body.appendChild(按钮)

尝试以下方法:

var body=document.getElem