2017-06-01 75 views
0

我有输入型文本设定新ID的JavaScript

<input type="text" name="processName"> 

我想用input元素的名称新的ID设置为这个输入元素

document.getElementsByTagName("processName")[0].setAttribute("id", "proceesOffsetId"); 

这是不工作

+1

为什么?你会用什么ID?您必须首先按名称选择元素,并且此时ID将是多余的。无论如何,一个提示:'.getElementsByTagName(“processName”)'正在寻找''元素... – nnnnnn

+0

我想集中游标..我可以这样做 - “document.getElementsByTagName(”processName“)[0 ] .focus()'. – Loura

+1

'.getElementsByTagName()'是错误的方法。试试'.getElementsByName()'。或'document.querySelector('[name =“processName”]')。focus()'。 – nnnnnn

回答

3

因此getElementsByTagName引用元素标记(例如:div标记,li标记,输入标记等)。它不通过name属性获取元素。

所以你的情况,来定位input元素,你可以做这样的事情:

document.getElementsByTagName("input")[0].setAttribute("id", "proceesOffsetId");

这将给inputproceesOffsetIdid

或者,瞄准name属性,你可以使用document.getElementsByName

document.getElementsByName("processName")[0].setAttribute("id", "proceesOffsetId");

这也将给inputproceesOffsetIdid

0

而不是使用getElementsByTagName,请使用getElementsByName,它适合您的请求。

HTML:

<input type="text" name="processName"> 

JS:

var x= document.getElementsByName("processName"); 
console.log(x); 
x[0].setAttribute("id", "proceesOffsetId"); 

这里的参考:https://www.w3schools.com/jsref/met_doc_getelementsbyname.asp