Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Change HTML name attribute using JavaScript

On the press of a div (which I made into a button with other code) I would like the following code:

<div id="w1" name="w1-0" onclick="weekclick(id)">1<br /></div>

...for the name to change from name="w1-0" to name="w1-1"

I'm using the following JavaScript:

function weekclick(id)
{    
 document.getElementById(id).input.name = "w1-1";
}

When I alert the id's name attribute, it says it is undefined. What do?

like image 895
user1228907 Avatar asked Dec 02 '22 00:12

user1228907


2 Answers

see code below:

<div id="w1" name='w1-0' onclick="weekclick(id)">1<br /></div>
<div onclick="weekclick('w1');">click me</div>​

<script type="text/javascript">
function weekclick(id) {    
    document.getElementById(id).setAttribute("name","w1-1");
}​
</script>

link to fiddle - http://jsfiddle.net/TH9C2/

(remove the alert line from the fiddle - it is just there to show you that it works)

like image 192
Yaron U. Avatar answered Dec 03 '22 13:12

Yaron U.


first of all change your call in the html to this user this.id and not just id:

<div id="w1" name='w1-0' onclick="weekclick(this.id)">1<br /></div>

than make your js like this (remove .input and use setAttribute):

function weekclick(id) {    
    document.getElementById(id).setAttribute('name', 'w1-1');
}

EDIT or you you change your call in html to this:

weekclick(this)

and your js function have to be like this:

function weekclick(domElement) {    
    domElement.setAttribute('name', 'w1-1');
}
like image 23
silly Avatar answered Dec 03 '22 12:12

silly