Javascript setAttribute 无法更新属性值
Javascript setAttribute is not working to update attribute's value
这是我的代码。
var hitButton = document.querySelector('.btn-hit');
var scoreResults = document.querySelectorAll(".flex-blackjack-row-1 h3");
var scores = document.querySelector(".flex-blackjack-row-1 span");
const config = {childList: true};
const bustedMessage = document.createElement('h2');
bustedMessage.textContent = 'BUSTED!';
const busted = function (mutationList, observer){
if (parseInt(scores.textContent) > 21) {
console.log(scores.textContent)
scoreResults[0].before(bustedMessage);
hitButton.setAttribute('disabled', 'true');
}
}
const observer = new MutationObserver(busted);
observer.observe(scores, config);
在名为“busted”的回调函数中,我向“hitButton”添加一个属性。但是当我尝试在另一个函数中像这样更新它时
hitButton.setAttribute('disabled', 'false');
它没有被更新。
但我可以使用
删除该属性
hitButton.removeAttribute('disabled');
删除那个属性就是我想做的。但现在我需要知道,为什么我不能更新它而不是删除它?
因为,HTML标签中的这些属性只是布尔属性。例如,如果存在“已禁用”属性,它会告诉浏览器禁用它,而不管您为其设置的值如何。
“选中”、“禁用”、“选中”、“静音”、“自动播放”、“循环”、“控件”是 HTML 中的一些布尔属性。
Google“HTML 中的布尔属性”。您将了解更多。希望它能回答你的问题。
这是我的代码。
var hitButton = document.querySelector('.btn-hit');
var scoreResults = document.querySelectorAll(".flex-blackjack-row-1 h3");
var scores = document.querySelector(".flex-blackjack-row-1 span");
const config = {childList: true};
const bustedMessage = document.createElement('h2');
bustedMessage.textContent = 'BUSTED!';
const busted = function (mutationList, observer){
if (parseInt(scores.textContent) > 21) {
console.log(scores.textContent)
scoreResults[0].before(bustedMessage);
hitButton.setAttribute('disabled', 'true');
}
}
const observer = new MutationObserver(busted);
observer.observe(scores, config);
在名为“busted”的回调函数中,我向“hitButton”添加一个属性。但是当我尝试在另一个函数中像这样更新它时
hitButton.setAttribute('disabled', 'false');
它没有被更新。
但我可以使用
删除该属性hitButton.removeAttribute('disabled');
删除那个属性就是我想做的。但现在我需要知道,为什么我不能更新它而不是删除它?
因为,HTML标签中的这些属性只是布尔属性。例如,如果存在“已禁用”属性,它会告诉浏览器禁用它,而不管您为其设置的值如何。
“选中”、“禁用”、“选中”、“静音”、“自动播放”、“循环”、“控件”是 HTML 中的一些布尔属性。
Google“HTML 中的布尔属性”。您将了解更多。希望它能回答你的问题。