56

Given a section of HTML, can I selectively pick some types of elements (e.g., input) and add a custom attribute using JavaScript? I would also need to remove this attribute if it exists.

I have done this before using jQuery, but I'm unable to use it for this particular task.

Juan Marco
  • 3,081
  • 2
  • 28
  • 32
DotnetDude
  • 11,617
  • 35
  • 100
  • 158

4 Answers4

104

Accessing HTML attributes using the DOM

element.hasAttribute('foo');
element.getAttribute('foo');
element.setAttribute('foo', value);
element.removeAttribute('foo');
Luis Melgratti
  • 11,881
  • 3
  • 30
  • 32
3
<div class="first-div">
<p class="first-p">Hello!
</p>
</div>

Adding attribute via javascript:

var myDiv= document.getElementsByClassName("first-div")[0];
var myp= myDiv.children[0];
nyp.setAttribute('myAttribute','valueForAttribute');

getting the attribute via javascript:

   console.log(myp.getAttribute('myAttribute'));
Olaru Alina
  • 458
  • 4
  • 8
0

You can look here how to get and set the attribute.

https://jsfiddle.net/tuc57hbp/6/

to get attribute you must first get the <td> value. Then you must get it's input children using td.children[0] and set the input children attribute value using input.setAttirbute('dummy', 'value'). Then retrieve it using getAttribute('dummy').

Victor
  • 468
  • 1
  • 5
  • 17
-1
el.attribute = value

is all there is to it. The attribute is created if it does not exist.

Macha
  • 14,366
  • 14
  • 57
  • 69