Я использую простой js для изменения внутреннего текста элемента метки, и я не был уверен, на каких основаниях я должен использовать innerHTML или nodeValue или textContent. Мне не нужно создавать новый node или изменять элементы HTML или что-то еще - просто замените текст. Вот пример кода:
var myLabel = document.getElementById("#someLabel");
myLabel.innerHTML = "Some new label text!"; // this works
myLabel.firstChild.nodeValue = "Some new label text!"; // this also works.
myLabel.textContent = "Some new label text!"; // this also works.
Я просмотрел источник jQuery, и он использует nodeValue ровно один раз, но innerHTML и textContent несколько раз. Затем я нашел этот тест jsperf, который указывает, что firstChild.nodeValue значительно быстрее. По крайней мере, это то, что я интерпретирую это.
Если firstChild.nodeValue намного быстрее, какой улов? Не поддерживается ли она широко? Есть ли другая проблема?