2016-11-21 51 views
0

我寫純JS腳本,需要從具有隨機名稱每次頁面中選擇一個文本輸入:的Javascript - 選擇第一個輸入(ID)

<input type="text" name="N8PkpWeLsNRQBjvwcwKULB57utJx5L2u0Ko" class="form-control" value=""> 

通常我會選擇它使用ID如:

var textinput = document.getElementById("myInput1"); 

沒有ID,但是,我怎麼能選擇這個元素?

據我所知,它似乎是頁面上唯一的文本輸入。

我計劃設置一些文字是這樣的:

HTMLInputElement.prototype.setText = function(text) { 
    this.value = text; 
}; 

var el = document.querySelectorAll('input[type=text]')[0]; 
el.setText("Hi"); 

但這並不出於某種原因?

+1

'document.querySelector('輸入.form-control [type = text]')'見https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector – Satpal

+0

謝謝,但是當我嘗試:var textinput = document.querySelector( 'input.form控制[類型=文本]'); textinput.setText( 「Hi」 的);它似乎沒有設置文本? – zeddex

+0

請參閱我的回答中的工作片段 – Satpal

回答

2

您可以使用document.querySelector(selectors)它返回文檔中的第一個匹配元素。

document.querySelector('input.form-control[type=text]') 

HTMLInputElement.prototype.setText = function(text) { 
 
    this.value = text; 
 
}; 
 
var textinput = document.querySelector('input.form-control[type=text]'); 
 
textinput.setText("Hi, You can no use setText method.");
<input type="text" name="N8PkpWeLsNRQBjvwcwKULB57utJx5L2u0Ko" class="form-control" value="">

+0

這看起來應該可以工作,但它並不適用於出於某種原因運行代碼的實際頁面。 – zeddex

1

爲了得到第一個文本字段使用以下。

var txtField=document.querySelectorAll('input[type=text]')[0]; 

要設置文本,你可以簡單地做。

txtField.value="your Value"; 
+0

我將如何設置輸入文本?看到我編輯的帖子。 – zeddex

+0

@zeddex檢查編輯。 –

+0

這在實際頁面上也不起作用,我正在運行一個tampermonkey腳本,並且彈出的警報正常,但是由於某種原因,上面的答案或上面的答案都沒有設置。如果可以,我會發布URL,但我注意到stackoverflow總是刪除它們。 – zeddex

1

這樣你可以選擇任何HTML標籤,因爲你只有1個輸入,這應該爲你工作

var input = document.getElementByName('input'); 
0

試試這個

var x = document.getElementsbyClassname("form-control").getAttribute("value"); 
相關問題