2009-08-27 40 views
2

我有兩個使用相同名稱命名的html選擇對象(它們是具有不同索引的數組)。如何修改HTML當名稱是使用Javascript的數組時,請選擇

我想要做的是,如果從類別[0]選擇元素中選擇「關閉」,我想禁用類別[1]元素。我一直在嘗試使用document.getElementsByName(),但我沒有計算出如何專門針對category [1]數組。請參閱下面的示例代碼。

<select name='category[0]'> 
    <option value='0'>off</option> 
    <option value='1'>on</option> 
</select> 

<select name='category[1]'></select> 

我的問題是我如何修改一個數組的HTML對象的屬性?我知道我可以使用ID很容易地做到這一點,但我想學習如何使用數組來完成此操作。

感謝

回答

3

未經測試:

<select name='category[0]'> 
    <option value='0'>off</option> 
    <option value='1'>on</option> 
</select> 

<select name='category[1]'></select> 

<script> 
var selects = document.getElementsByTagName('select'); 

for (var i = 0, len = selects.length; i<l; ++i) { 
    if (selects[i].name == 'category[1]') { 
     // operate on selects[i]; 
     // you can also rely on getAttribute('name') 
    } 
} 

</script> 
+0

謝謝!通過使用document.getElemetnsByTagName(),我可以使用var [i] .property方法修改其他屬性。 – justinl 2009-08-27 08:21:22

+0

很好的解釋!很容易理解。給予好評。 – 2012-02-02 07:32:57

2
<select name='category[0]' onChange="disCat(this.value);"> 
    <option value='0'>off</option> 
    <option value='1'>on</option> 
</select> 
<script type="text/javascript"> 
function disCat(val){ 
    if(val!="0") return; 
    var sels=document.getElementsByTagName("select"); 
    for(i=0;i<sels.length;i++) 
    { 
    if(sels[i].getAttribute('name')=='category[1]') sels[i].disabled=true; 
    } 
} 
</script> 
相關問題