jQueryのattr()を使う。
もし、idを'oldid'→'newid'に変更したいのなら、
$('#oldid').attr('id', 'newid');
とすれば良い。
しかし、もっと動的に、生成された番号などをid内に入れたいときなどは、
例えば、attr(function(i){...})を使う。
以下はClick meボタンを押すと新しいpタグが挿入されていき、TESTボタンをクリックすると、上から4番目のものの背景が赤になるというコード。
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#button1").click(function(){
$("div.contents").prepend("<p>This is test.</p>");
$("p").attr("id",function(i){
return "num"+i;
});
});
$("#button2").click(function(){
$("p#num4").css("background-color","red");
});
});
</script>
</head>
<body>
<button id="button1">Click me</button>
<button id="button2">TEST</button>
<div class='contents'></div>
</body>
</html>
jQueryのattr()関数についてはここを参照。
とても参考になりました。一点だけわからないのですが、
返信削除function(i){return "num"+i;}
はなぜ「i」が勝手に増えるのでしょうか?
$(指定の要素).attr(function(i){...})のiには、指定の要素が何番目であるかが入ります。なのでこの例だとiが増えているというより、prependによって増えてくpタグに上から順番に番号が振り直されています。
削除