4

次のように、radioGroupに1つの要素を作成します。

var selectorLay1 = document.createElement('input');
        var selectorLay1Atributes = {
            'type': 'radio',
            'class': "selectorLay1",
            'id': "radioLay1",
            'name': "layouts",
            'onchange': "mv.createLayout(1,1)"};

私はこのようなさまざまな要素を持っています。しかし、それらはすべて同じ名前を持っています:'layouts'。この要素をすべて見つけて動的に無効にする方法。

4

2 に答える 2

10

これを試して:

var radios = document.getElementsByName('layouts');
for (var i = 0, r=radios, l=r.length; i < l;  i++){
    r[i].disabled = true;
}

https://developer.mozilla.org/en-US/docs/DOM/document.getElementsByNameを読んでくださいgetElementsByName

于 2013-03-26T12:57:34.533 に答える
6

私は提案します:

var inputs = document.getElementsByName('layouts');
for (var i = 0, len = inputs.length; i<len; i++){
    inputs[i].disabled = true;
}

簡単なデモ

nameこれにより、ので関連する要素が選択layoutsされ、for {...}ループ内でそれらの要素を繰り返し処理してdisabledプロパティを設定します。

単純な関数アプローチの使用:

function disableByName(elName){
    var els = document.getElementsByName(elName);
    if (els !== null){
        for (var i = 0, len = els.length; i<len; i++){
            els[i].disabled = true;
        }
    }
}

var button = document.getElementById('radioDisable');

button.addEventListener('click',function(e){
    e.preventDefault();
    disableByName('layouts');
}, false);

簡単なデモ

document.getElementsByName()または、必要に応じて、オブジェクトプロトタイプを拡張して、セレクターによって返される要素を直接無効にできるようにすることもできます。

Object.prototype.disable = function(){
    var that = this;
    for (var i = 0, len = that.length; i<len; i++){
        that[i].disabled = true;
    }
    return that;
};

document.getElementsByName('layouts').disable();

簡単なデモ

于 2013-03-26T12:55:39.103 に答える