不能同时改变JavaScript/HTML中元素的颜色和文本

uyhoqukh  于 12个月前  发布在  Java
关注(0)|答案(4)|浏览(104)

我在js中调用了一个函数来替换HTML文档中标记为'test'的元素,'test'只是一个写着“Hello world”的段落。

function doSomething(){
    document.getElementById("test")
    .style.color = "magenta";
    .textContent = "Goodbye";

它突出显示textContent之前的'.',如果我删除'.',文本会改变颜色,但仍然显示“Hello world”
对JS来说很新,所以这可能有一些简单的修复方法,但我在任何地方都找不到它。

rfbsl7qr

rfbsl7qr1#

我认为你必须两次瞄准元素,或者这不是你的主要问题?

function doSomething() {
    document.getElementById("test")
        .style.color = "magenta";

    document.getElementById("test")
        .textContent = "Goodbye";
}
xoefb8l8

xoefb8l82#

赋值的结果(obj.a = b)是被赋值的值,而不是您正在使用的对象(并且;无论如何都会终止语句)。相反,将对象引用保存为变量/常量,然后执行两个单独的赋值:

function doSomething(){
    const element = document.getElementById("test");
    element.style.color = "magenta";
    element.textContent = "Goodbye";
}
5ssjco0h

5ssjco0h3#

听起来你在找这个:

function doSomething(){
    document.getElementById("test").style.color = "magenta";
    document.getElementById("test").textContent = "Goodbye";
}
hujrc8aj

hujrc8aj4#

JavaScript代码中的问题是没有对象目标的句点('.')的位置。您应该将元素收集到一个变量中,并指定您正在尝试访问它在句点之前的属性,例如element.textContent

function doSomething() {
    var element = document.getElementById("test");
    element.style.color = "magenta";
    element.textContent = "Goodbye";
}

相关问题