更改javascript元素样式

时间:2014-07-07 10:11:59

标签: javascript jquery css

我正在尝试在我的开发网站中获取一个javascript元素并更改它的样式。我没有运气 - 这是网站http://www.best-foods-for-fat-burning.com/wordpress/cat /עוף的链接。 <span class="price">有一个NodeName =“#text”的元素,我想改变它的风格。我该如何尝试更改它?我尝试了以下“抓住”元素,但没有成功:

var x=document.getElementsByName("#text");
 alert(x.length); 
var y=document.getElementById("#text"); 
alert(y.length); 
var z=document.getElementsByTagName("#text"); 

关于如何抓住元素并改变其风格的任何建议?

2 个答案:

答案 0 :(得分:0)

你的问题并不是很明显,但最终我觉得NodeName="#text"意味着你正在处理text node。这是不是元素。

您无法直接设置文本节点的样式。您只能设置元素节点的样式,并使其样式影响其中的文本。


您提到<span class="price">,因此可能是文本节点是范围的子节点。

您可以使用以下方式为该类设置样式(第一个匹配):

document.querySelector('span.price').style.someProperty = "someValue";

或者你可以使用querySelectorAll并循环结果节点列表来设置匹配的所有元素的样式。


由于您提到样式文本节点,如果您的问题具体,那么您可能会遇到如下情况:

<span> foo <i> bar </i> baz </span>

...你想要风格的地方&#34; foo&#34;和&#34; baz&#34;不同于&#34; bar&#34;。为此,您通常会设置范围样式,然后覆盖span i

的样式

或者,您可能希望在不触及foo bar的情况下设置baz样式。在这种情况下,您需要其他元素。

    <span> <span>foo</span> <i> bar </i> baz </span>

现在你可以设置span span样式。

答案 1 :(得分:-1)

你应该这样做:

var x = document.getElementById('text');//no need to use hash for the id

或者如果您更喜欢使用jquery,那么请使用如下:

var x = $('#text');//need to use hash for the id

现在,您可以使用x.length