javascripthtmldomdom-manipulation

What is innerHTML on input elements?


I'm just trying to do this from the chrome console on Wikipedia. I'm placing my cursor in the search bar and then trying to do document.activeElement.innerHTML += "some text" but it doesn't work. I googled around and looked at the other properties and attributes and couldn't figure out what I was doing wrong.

The activeElement selector works fine, it is selecting the correct element.

Edit: I just found that it's the value property. So I'd like to change what I'm asking. Why doesn't changing innerHTML work on input elements? Why do they have that property if I can't do anything with it?


Solution

  • Setting the value is normally used for input/form elements. innerHTML is normally used for div, span, td and similar elements.

    value applies only to objects that have the value attribute (normally, form controls).

    innerHTML applies to every object that can contain HTML (divs, spans, but many other and also form controls).

    They are not equivalent or replaceable. Depends on what you are trying to achieve.