我正在尝试在我的开发网站中获取一个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");
关于如何抓住元素并改变其风格的任何建议?
答案 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