2010-07-23 52 views
1

我想知道是否有人知道更好的方式来写这段代码。缩短jQuery命令

if($('div.homeBox > div').length > 0){ 
    $('div.homeBox > div').remove(); 
} 
$('div.homeBox').append(data.loadPage); 

这样工作,但我想尽可能使它漂亮。我使用ajax请求(data.loadPage)返回的HTML数据替换了我的页面中的一段代码。

data.loadPage的一个例子是提前任何建议

<div id="variousIDs" > 
    ... some content ... 
</div > 

感谢。

+1

为什么测试'length> 0'?对一组空的结果调用'.remove()'应该什么都不做。 – Lucas 2010-07-23 17:30:53

回答

1
// you don't need to test if it exists first 
$('div.homeBox > div').remove() 
$('div.homeBox').append(data.loadPage); 

// if you want to do it in one go, this less clear option should work, too: 
// .end() moves back up the stack to undo the last filter operation (.children()) 
$('div.homeBox').children('div').remove().end().append(data.loadPage); 

// if you want to get rid of everything within homebox, this is even easier: 
$('div.homeBox').empty().append(data.loadPage); 
+0

这正是我正在寻找的,感谢您的快速回复。 – stmpy 2010-07-23 17:44:00

0

给了DIV中div.homeBox自己的ID(例如, “ID = homeBoxInnerDiv” 或东西),然后

如果($( '#homeBoxInnerDiv')。可见()){
$( '#homeBoxInnerDiv')replaceWith(data.loadPage)。
}

这将替换您想要使用新内容删除的div的内容。