我有多於一個div 具有相同的id,但其中一個具有diplay ='block' 等人擁有display = '沒有'。如何刪除具有相同id的div,但在JAVASCRIPT中顯示='block'和display ='none'
我想刪除所有有display ='none'的div。
請告訴最簡單的方法。
我有多於一個div 具有相同的id,但其中一個具有diplay ='block' 等人擁有display = '沒有'。如何刪除具有相同id的div,但在JAVASCRIPT中顯示='block'和display ='none'
我想刪除所有有display ='none'的div。
請告訴最簡單的方法。
與文檔中的多個元素具有相同的id是違反W3標準的。
改爲使用類名稱。不幸的是,沒有JavaScript函數通過類名來獲取元素。恐怕你將不得不遍歷所有div元素(使用getelementsbytagname),然後找出必要的div。
但是,如果您使用的是jQuery,您可以使用它的選擇器並按類名獲取元素並遍歷它。
$('.classname').each(function(index) {
//check if display is none and delete it
});
不僅僅是W3C標準,而且還針對XHTML 1.1 doctype定義(現在我認爲它是W3C標準)。 – amphetamachine 2010-04-21 13:26:12
任何html元素ID屬性都必須是唯一的。更多關於W3Schools.com。你應該重寫你的html代碼來使用類而不是id。
第一個ID應該是唯一的整個文件,在文件中重複的ID是錯誤的做法。
關於刪除具有相同樣式的元素,如果您可以將樣式保留在CSS類中,那麼最好創建兩個類一個隱藏和其他顯示,然後使用jQuery從選擇器中選擇這些元素並將其刪除,例如
$(".hidden").remove();
但是,如果它是內聯的,你應該選擇元素並循環遍歷它們,看看誰有style = none將其刪除。 如: 讓我們說你要控制有統一的階級,而不是重複ID的元素,可以說「MyDivs」
jQuery中
$(".MyDivs").each(
function(){
if($(this).css("display") == "none")
{
$(this).remove();
}
}
)
希望這有助於
你可以做到這一點一行jQuery代碼,如果你想用它去:
$("div.the_div:hidden").remove();
這將消除由於被隱藏JQuery的隱迭代是display:none
確保你包上面的代碼行中的jQuery 準備方法,只要DOM準備好觸發的所有div。所以就變成:
$(function(){
$("div.the_div:hidden").remove();
});
注:給你申報單之類的the_div
第一。
不要爲元素使用相同的ID,請改用'class'。 – Sarfraz 2010-04-21 13:15:15
您不能在頁面上使用給定ID的多個元素。在嘗試使用JS處理頁面之前解決這個問題。 – Quentin 2010-04-21 13:15:17
爲什麼?他們隱藏起來。他們不傷害任何人。:-) – amphetamachine 2010-04-21 13:25:16