小编Sci*_*ion的帖子

隐藏与删除DOM元素

隐藏与删除

处理DOM元素,隐藏或删除的最佳方法是什么?假设环境可以多次改变.元素可以具有单击回调或其他事件回调.

隐藏

隐藏什么是最好的?如果单击按钮隐藏多个项目,您可以逐个隐藏,或者您也可以创建css规则来执行此操作.

选项1:

<style>
.superContent{/*...*/}

.superContent.noEdit .occultable{
    display:none;
}
</style>

<form class=”superContent” action=”...”>
    <label>Name</label>
    <input type=”text” />
    <input type=”submit” class=”occultable” value=”send”/>
</form>

<button id=”hideAll”>Edit</button>
<script type=”text/javascript”>
    $(“#hideAll”).click(function(){
        $(“.superContent”).toggleClass(“noEdit”);
    });
</script>
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/p8mU8/

另一种选择是隐藏所需的项目(这些项目可能很少或很多):

选项2:

<script type=”text/javascript”>
    $(“#hideAll”).click(function(){
        $(“.occultable”).toggle();
    });
</script>
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/JAmF9/


去掉

要修改DOM,您还可以删除不需要的项目,并在以后重新插入.

选项3:

<form class="superContent">
    <label>Name</label>
    <input type="text" />
    <input id="sendbutton" type="submit" class="occultable" value="send"/>
</form>

<button id="hideAll">Edit</button>?

<script type=”text/javascript”>
$("#hideAll").click(function(){
    if( $(".superContent").find("#sendbutton").length>0 ){
        $(".superContent").find("#sendbutton").remove();
    }
    else{
        $(".superContent").append('<input id="sendbutton" type="submit" class="occultable" value="send"/>');
    }
});?
</script>
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/Yj5Aw/

这些只是一些小例子.假设UI包含大量元素.你觉得什么是最好的选择?哪个内存泄漏少,性能更高?

有一些像kendo-ui这样的javascript框架可以删除元素.jQueryUI更喜欢隐藏项目,但是窗口小部件Tab sortable可以创建由用户临时拖动的选项卡.

javascript css optimization jquery

17
推荐指数
1
解决办法
1万
查看次数

为什么 Object.prototype.__proto__ === null

在 JavaScript 中,非标准属性 __ proto__ 和函数 Object.getPrototypeOf(...) 返回内部属性 [[Prototype]]。

对于所有函数,属性“prototype”都是 Object.prototype 的实例,例如:

Array.prototype instanceof Object//true
Run Code Online (Sandbox Code Playgroud)

但 Object.prototype 却并非如此:

Object.prototype.__proto__ === null //true
Object.getPrototypeOf( Object.prototype ) === null //true
Run Code Online (Sandbox Code Playgroud)

mozilla 开发者文档只说:

对象的proto属性引用与其内部 [[Prototype]] (通常称为“原型”)相同的对象,该对象可以是一个对象,也可以是 Object.prototype 的默认情况。原型,空。

Object.prototype 会更合适吗?proto或失败的 Object.getPrototypeOf (Object.prototype) 返回 Object.prototype?

这是一个错误吗?这个可以吗?为什么?

javascript ecmascript-5

1
推荐指数
1
解决办法
1434
查看次数

标签 统计

javascript ×2

css ×1

ecmascript-5 ×1

jquery ×1

optimization ×1