51

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
  • 2,551
  • 2
  • 22
  • 26
DotnetDude
  • 11,369
  • 33
  • 97
  • 156

4 Answers4

95

Accessing HTML attributes using the DOM

element.hasAttribute('foo');
element.getAttribute('foo');
element.setAttribute('foo', value);
element.removeAttribute('foo');
Luis Melgratti
  • 11,531
  • 2
  • 28
  • 32
2
<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
  • 408
  • 3
  • 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
  • 418
  • 1
  • 5
  • 15
0
el.attribute = value

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

Macha
  • 13,848
  • 14
  • 55
  • 68