2012-03-26 173 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 //教程动态地创建样式