当“ document.getElementById'ShowButton'innerText ='example'”具有相同ID时,为什么“ element.innerText =” example“'不起作用?

问题描述

我目前正在尝试使用JS翻译按钮的文本。

我尝试使用此方法

function changeButtonText() {
    buyNowButton = document.querySelectorAll("button.buy_Now");
    for (var i = 0; i < buyNowButton.length; i++) {
        buyNowButton[i].setAttribute("id","buyNowButton");
    }
    buyNowButton.innerText = "New Text";
}

哪个没用。除了输入具有“ buyNowButton.value =“ New Text”;“之外,我对'input'元素而不是'button'元素使用了相同的代码。并且有效。

检查Chrome调试器工具后,会显示ID已分配给按钮元素,并通过输入“ buyNowButton.innnerText”检查该值,还会返回“新文本”。唯一的问题是网站上按钮的文本实际上并未更改。我也尝试过.innerHTML,.value,.textContent,但没有成功。

然后我找到了这个解决方案:

document.getElementById('elementID').innerText = 'value;'

并像这样使用它:

function changeButtonText() {
    buyNowButton = document.querySelectorAll("button.buy_Now");
    for (var i = 0; i < buyNowButton.length; i++) {
        buyNowButton[i].setAttribute("id","buyNowButton");
    }
    document.getElementById('buyNowButton').innerText = "New Text";
}

它完成了工作。我只是困惑为什么当第一个不起作用时为什么这个起作用?

在这两种情况下,我都给元素提供了ID“ buyNowButton”。我用chrome调试器工具进行了验证-本质上,代码应该做同样的事情,对吧?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)