2016-11-21 96 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"); 
相关问题