Я хотел бы установить атрибут span
узла visited
на true
или false
на основании, если он был посещен.set/getAttribute сравнения работают только со строками?
test();
function test() {
var el = document.createElement("span");
el.setAttribute("visited", false);
el.setAttribute("visited", true);
alert(el.getAttribute("visited") === true); //False
alert(el.getAttribute("visited") === "true"); //True
}
Я изначально установить атрибут «посетил» для булева ложных, затем установить логическое значение для истинного. Я заметил, что когда я проверил, был ли атрибут true
, он вернул значение false, но если я проверил строку true
, она вернулась.
MSN Docs говорить только об атрибутеName как обязательном для строки, а не в значении. Так почему же не сравнивается с bools?
Да, атрибуты всегда являются строками, но 'свойствами' может быть несколько разных типов. –
MSDN не является нормативной ссылкой для соответствующего стандарта, W3C: [* setAttribute *] (http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-F68F082), [* getAttribute *] (http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-666EE0F9). – RobG