2017-01-04 29 views
1

我尝试通过标记名称获取我的标记并更改它的值,你能帮我找出为什么这不起作用吗?为什么我不能通过javascript更改文本字段的值?

var r_capacity=document.getElementsByName("capacity"); 
 
function expireOtherFildes(){r_capacity.value="";}
ID: <input type="text" name="id" class="textBox" onFocus="expireOtherFildes()"/> 
 
capacity: <input type="text" name="capacity" value="xxx"/>

+0

请你解释更多的一样吗? –

+0

你只是想改变“容量”文本文件的值,对吧? –

+0

控制台中有任何错误吗? – zola

回答

3

您需要使用这样的:

var r_capacity=document.getElementsByName("capacity")[0]; 

document.getElementsByName("capacity")返回nodeList。 节点可以通过索引号访问。

var r_capacity=document.getElementsByName("capacity")[0]; 
 
function expireOtherFildes(){r_capacity.value="";}
ID: <input type="text" name="id" class="textBox" onFocus="expireOtherFildes()"/> 
 
capacity: <input type="text" name="capacity" value="xxx"/>

1

您需要使用

var r_capacity = document.getElementsByName("capacity")[0]; 

因为var r_capacity = document.getElementsByName("capacity");它返回一个nodeList,你可以访问回吐使用index这是0的:

var r_capacity = document.getElementsByName("capacity")[0]; 
 
console.log(r_capacity); 
 

 
function expireOtherFildes() { 
 
    r_capacity.value = ""; 
 
}
ID: 
 
<input type="text" name="id" class="textBox" onFocus="expireOtherFildes()" />capacity: 
 
<input type="text" name="capacity" value="xxx" />

一个更好的办法来做到这一点是使用querySelector(),这将防止从得到一个问题像你遇到过:

var r_capacity = document.querySelector("input[name='capacity']"); 
 
    console.log(r_capacity); 
 

 
    function expireOtherFildes() { 
 
    r_capacity.value = ""; 
 
    }
ID: 
 
<input type="text" name="id" class="textBox" onFocus="expireOtherFildes()" />capacity: 
 
<input type="text" name="capacity" value="xxx" />

1

document.getElementsByName()返回数组NodeList。您需要选择的第一个索引,或者干脆改用document.getElementById()

var r_capacity=document.getElementsByName("capacity")[0]; 
 
                //-^^^ 
 
console.log(r_capacity); 
 
function expireOtherFildes(){r_capacity.value="";}
ID: <input type="text" name="id" class="textBox" onFocus="expireOtherFildes()"/> 
 
capacity: <input type="text" name="capacity" value="xxx"/>

2

document.getElementsByName返回数组。您可以访问它通过index.Refer下面 -

var r_capacity=document.getElementsByName("capacity"); 
 
function expireOtherFildes(){ 
 
    
 
    r_capacity[0].value=""; 
 
    
 

 
}
ID: <input type="text" name="id" class="textBox" onFocus="expireOtherFildes()"/> 
 
capacity: <input type="text" name="capacity" value="xxx"/>

相关问题