Reputation: 43
I have a div
like this:
<div id="masterDiv">
<div id="childDiv" class="3" ></div>
<div id="childDiv" class="5" ></div>
<div id="childDiv" class="10" ></div>
</div>
How can I make value from attribute class
become sequence number when clicked? Like this:
<div id="masterDiv">
<div id="childDiv" class="1" ></div>
<div id="childDiv" class="2" ></div>
<div id="childDiv" class="3" ></div>
</div>
Upvotes: 1
Views: 1038
Reputation: 1
Code sample:
$("#masterDiv > div").attr("class", function(arr) {return "classname"+arr;})
});
Upvotes: 0
Reputation: 4361
Ideally id values should be unique. That is the whole purpose of using an id. In your case instead of id make use of multiple class names
<div id="masterDiv">
<div class="childDiv 3" ></div>
<div class="childDiv 5" ></div>
<div class="childDiv 10" ></div>
</div>
then try this (I've slightly modified Rory's solution)
$(".childDiv").each(function(index) {
$(this).removeClass().addClass(index + 1).addClass("childDiv");
});
Upvotes: 1
Reputation: 4393
$(document).ready(function(){
$("#masterDiv > div").each(function(i, item){
$(this).attr("class", i + 1);
});
});
Upvotes: 2
Reputation: 337626
Try this:
$(".childDiv").each(function(index) {
$(this).removeClass().addClass(index);
});
Upvotes: 0