0

我在页面上有几个元素。就像是:

<div id="el1"><div id="el2"><span id="el3">1</span><span id="el4">2</span></div><span id="el5">3</span></div>

我需要使用它们的 ID 禁用/启用它们中的任何一个。

<input type="radio" name="do" onclick="disable(document.getElementById('el4'));">        
<input type="radio" name="do" onclick="enable(document.getElementById('el4'));">

disable() 和 enable() 函数中应该包含什么才能真正禁用元素?

“禁用”是指使其对用户不可见,“id”无法访问,并且可以通过“enable()”函数恢复。

是否可以打开/关闭元素?完全,我的意思是。

4

2 回答 2

0

您可以使用

document.getElementById('el4').style.display='none'; // hide
document.getElementById('el4').style.display=''; // show

你可以定义这样的函数:

function hide(element){
   element.style.display='none';
}
function show(element){
   element.style.display='';
}

我真的建议不要使用启用禁用词,因为它们有其他含义(禁用的小部件是您可以看到但无法更改的小部件)。

更好的解决方案是定义一个 CSS 类

.hidden {
   display: none;
}

并更改 js 中的类:

document.getElementById('el4').classname='hidden'; // hide

如果你想完全删除一个元素,你可以使用removeChild

var node = document.getElementById('el4');
node.parentNode.removeChild(node);

但它几乎从来没有用过。喜欢像通常那样隐藏。

于 2012-11-19T19:00:38.157 回答
0
function  addEl4(){
   var elem = document.getElementById('el2'); 
   var newElem = document.createElement('div');
   newElem.setAttribute('id', 'el4');
   newElem.innerHTML = 2;
   elem.appendChild(newElem);
};

function  disable(elem){
   var container = document.getElementById('el2'); 
   container.removeChild(elem);
};

如果您正在谈论从页面中完全删除元素。然后您可以使用该.removeChild()方法..然后需要将其附加到您正在谈论的div中..

检查小提琴

于 2012-11-19T19:02:55.753 回答