2017-06-01 57 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