2012-03-26 172 views
1

我有一個帶有通配符ID的div。我想改變通配符上的顯示而不是實際的元素。jquery更改通配符的css屬性

#mywildcard{ 
display:none; 
} 
<div id = "mywildcard"></div> 

當我點擊一個按鈕或某物我想改變實際屬性顯示不添加樣式的元素。

我想

#mywildcard{ 
display:block; 
} 

什麼我現在得到的是

<div id = "mywildcard" style="display:block"></div> 
#mywildcard{ 
display:block;//Firebug show crossed out. 
} 

我試圖 $('#mywildcard).css('display','block');,它只是增加了一個風格,該元素

+1

有什麼問題嗎? – Christoph 2012-03-26 16:45:18

回答

3

你想要的是使用jQuery的功能.toggle().show(),這取決於你試圖達到的效果類型。

在元素上調用.toggle()將檢測它是否顯示無,然後它將恢復到其默認顯示。如果當前顯示(display:block),則再次調用.toggle()將隱藏該元素。

如果您想要做一次從display:none更改爲display:block,那麼您需要使用.show()函數。

更具體地講,假設你正在試圖連接到.show()函數的wildcardShowBtn一個id,形成按鈕。爲了實現這一目標jQuery中你會做:

$("#wildcardShowBtn").click(function() { 
    $("#mywildcard").show(); 
}); 
+0

這與他所要求的相反。 .show將使用他正試圖避免的style屬性stye =「display:block」。 – Fresheyeball 2012-03-26 18:33:07

1

試試這個(這聽起來像這樣是你想要的)

document.ge tElementById('mywildcard')。setAttribute('style','display:none;');

+0

這與他所要求的相反。使用樣式屬性stye =「display:block」正是他所說的他不想要的。 – Fresheyeball 2012-03-26 18:35:10

1

據我知道有沒有辦法從編輯外部CSS文件中的CSS規則#wildcard,但如果你能做到這一點在一個頁面上樣式標籤。或者,如果你在外部css文件中沒有設置它,這應該仍然有效。

你想要做的是編輯的規則不是元素,所以瞄準風格標籤來代替:

$('style[id=mystyle]').html($('style[id=mystyle]').html().replace('none','block'));` 

這樣的事情會發現風格標籤和替換「無」的情況下,以「塊「

,但如果您的規則是在外部樣式表中,你可以用js來創建它裏面的規則新的樣式標籤。

jQuery CSS - Write into the <style>-tag //第二個答案

http://www.webdeveloper.com/forum/archive/index.php/t-130717.html //教程動態地創建樣式