2016-08-29 1 views
0
var divfoo=document.getElementById("foo"); 

divfoo.className=" css-class css-class2 "; 
divfoo.className=divfoo.className.replace(" css-class2 ", ""); 

Приведенный выше код работает. но я хотел бы внести изменения в последнюю строку выше кода, который использует метод replace. Вместо написания кода, как и выше, я хотел бы знать, почему он не работает, когда написано, как показано ниже.Удаление класса Название элемента с использованием метода element.className.replace

var divfoo=document.getElementById("foo"); 

divfoo.className=" css-class css-class2 "; 
divfoo.className.replace(" css-class2 ", ""); 

Почему следует назначить «divfoo.className» при применении метода замены к тому же «divfoo.className», почему мы не можем просто применить метод непосредственно, как выше код сделал?

Из-за этого я должен ненавидеть javascript за то, что он не логичен?

enter code here 

ответ

1

Element.className является простой строка представление атрибута класса HTML.

Метод не изменяет строку источника, которая вызывается, просто возвращает результат процедуры замены.

Если вы хотите больше «логического/функционального» подхода, посмотрите на интерфейс Element.classList, а именно на метод remove.

+0

Спасибо большое за ответ! – Naresh