在下面的代码中,元素para1的颜色通过开头的内部样式设置为绿色。
如果我第一次点击按钮" console.log(elem.style.color)"在"函数changeColor"不会返回绿色。第二次返回元素的颜色等。
function changeColor(newColor) {
var elem = document.getElementById("para1");
console.log(elem.style.color);
elem.style.color = newColor;
}

.mypara1{
color: green;
}

<p id="para1" class="mypara1">Some text here</p>
<button onclick="changeColor('blue');">blue</button>
&#13;
为什么内部样式设置的颜色未返回?
答案 0 :(得分:1)
原因是elem.style
returns the style that is directly applied on a DOM element(例如在HTML中,或通过elem.style
),而不是CSS选择器产生的样式。
如果要获取计算出的样式,考虑到CSS规则,则需要使用window.getComputedStyle
。请注意,结果可能与输入的结果略有不同(例如,使用chrome,颜色总是以rgb值的形式给出)。
function changeColor(newColor) {
var elem = document.getElementById("para1");
console.log(getComputedStyle(elem).getPropertyValue("color"));
elem.style.color = newColor;
}
&#13;
.mypara1{
color: green;
}
&#13;
<p id="para1" class="mypara1">Some text here</p>
<button onclick="changeColor('blue');">blue</button>
<button onclick="changeColor('red');">red</button>
&#13;
以下是在HTML而不是CSS中设置style属性的示例。即使在使用console.log
时,elem.style
第一次也可以看到。
function changeColor(newColor) {
var elem = document.getElementById("para1");
console.log(elem.style.color);
elem.style.color = newColor;
}
&#13;
<p id="para1" class="mypara1" style="color: green;">Some text here</p>
<button onclick="changeColor('blue');">blue</button>
<button onclick="changeColor('red');">red</button>
&#13;
答案 1 :(得分:0)
在您的样式定义中,您要将类[THYMELEAF][http-nio-8080-exec-1] Exception processing template "users": Error during execution of processor 'org.thymeleaf.spring4.processor.attr.SpringInputGeneralFieldAttrProcessor' (users:31)
的属性color
设置为绿色。
当您第一次看到mypara1
时,它会通过<p>
而不是class
为其分配颜色,因此会间接设置颜色。
举例说明:
id
<p>
有mypara1
,没有color: green
element.style
的新属性。答案 2 :(得分:0)
function changeColor(newColor) {
var elem = document.getElementById("para1");
console.log(elem.style.color);
elem.style.color = newColor;
}
&#13;
<p id="para1" class="mypara1" style="color:green">Some text here</p>
<button onclick="changeColor('blue');">blue</button>
<button onclick="changeColor('red');">red</button>
&#13;
看看这段代码片段,我添加了内联样式&#34;颜色:绿色&#34;到
标签,现在它在第一次调用函数时返回绿色。