我试图优化和缩短我的功能,并且我使用了obj.style.display = 'block';
很多次。我可以将它分配给我可以重复使用的变量吗?将显示属性分配给变量
考虑这个例子
document.getElementById('example').visible;
哪里.visible
是.style.display = 'block';
变量。
感谢
我试图优化和缩短我的功能,并且我使用了obj.style.display = 'block';
很多次。我可以将它分配给我可以重复使用的变量吗?将显示属性分配给变量
考虑这个例子
document.getElementById('example').visible;
哪里.visible
是.style.display = 'block';
变量。
感谢
你可以尝试这样的事情:
function setDisplay (obj, display) {
obj.style.display = display;
}
setDisplay(document.getElementById('test'), 'block');
您也可以尝试这样的事情,如果你希望它看起来更好:
function getById(id) {
var obj = document.getElementById(id);
obj.display = function (display) {
this.style.display = display;
};
return obj;
}
var test = getById('test');
test.display('block');
最后,你可以使用一个简化DOM操作的框架,如果你要做很多事情,比如jQuery。
刚刚回答完全相同的事情... http://jsfiddle.net/yusafkhaliq/7mFe5/ – 2013-02-23 19:30:50
这就是我爱你的JavaScript,你可以在旅途中扩展对象的方式 – KaeruCT 2013-02-23 19:32:03
'这个'仍然让我困惑:P,我总是找到我的出路,然而,当记录你工作的时候,事情变得更简单了,在plain ol'JavaScript之前运行到jquery中,所以它也使得你的工作更容易“使用”:P使用 – 2013-02-23 19:37:32
您可以定义一个函数
function set_visible(obj, visibility) {
obj.style.display = visibility;
}
有没有方法来存储属性链中的一个变量。
如果你不反对js库,为什么不使用jQuery?这样,你才能真正简化: -
$("#example").show();
由于OP正在寻求优化他的代码,我怀疑包括一个这样简单的东西就是答案的整个库。 – j08691 2013-02-23 19:22:46
够公平的,只是提供了选择。 – 2013-02-23 19:23:17
这是一个足够公平的答案,考虑到jquery真的仍然是JavaScript,并且发现谁没有使用库,没有人有时间编写多浏览器错误/问题 – 2013-02-23 19:25:02
我认为最接近你可以用新方法扩展'Object'(或'HTMLElement')的原型。然后使用它像'document.getElementById('example')。visible('none');'设置和'document.getElementById('example').visible();'得到。然而这并不酷。 – dfsq 2013-02-23 19:31:23
@dfsq在可见性的情况下,您可以始终填充HTML5'hidden'属性。 – Neil 2013-02-23 19:33:47