2011-09-22 27 views
7

div idを動的に設定するにはどうすればよいですか?ここに私のコードは次のとおりです。JavaScriptまたはjQueryでdiv idを動的に設定する

<div id="q1"></div> 
<div id="q2"></div> 
<div id="q3"></div> 
<div id="q4"></div> 
<div id="q5"></div> 

は今、私はJavaScriptでそのようQ1何かにQ4 divのIDを設定します。 JavaScriptやjQueryでどうすればいいですか?

私はこれを試しました。

document.getElementById("q4").id = "q1"; 
document.getElementById("q2").id = "q5"; 

しかし、オブジェクトがnullまたは定義されていないと言っています。

ありがとうございました。チャクリー。

+2

ようなものになるだろうどこにあるページ内のJavaScriptコード? – Pointy

+0

あなたの現在のコードは正しいです。 http://jsfiddle.net/fPgYj/ –

+1

* "q4 div idをq1に設定したい..." *元の 'q1' idを必ず別のものに変更してください。 IDを複製しないようにします。 – user113716

答えて

3

$('#q1').attr('id', 'q4')それは私が考えるsoulde仕事...

EDIT:

それはまだdoesntの仕事は</body>前にこれを入れてみた場合:jQueryので

<script> 
    $(document).ready(function(){ 
     $('#q1').attr('id', 'q4') 
    }); 
</sript> 
+2

はい、それはJavaScriptやjQueryでどうすればいいのですか? – Luwe

+0

です。 「どうすればjavascriptやjqueryでできるの?」 –

+0

@ jmar777 OPを引用する:「どうすればjavascriptやjqueryでできるの?」 –

0

あなたがこれを行うことができます:

$('#q4').attr('id', 'q1'); 

ただし、マークアップが無効になることに注意してください1つの文書で同じIDを複数回使用することはできません。

1

あなたのコードは問題ありません。つまり、エラーが発生した場合、JavaScriptでこれらの要素がDOMで定義される前に実行されている可能性があります。スクリプトブロックを(これらの要素の下、ページの一番下など)に移動するか、コードをDOMロード/レディハンドラに配置してみてください。


編集:なぜこれがダウン投票されているのかわからないが、何でも。あなたはDOM readyイベントを待っている間にjQueryでこれを実行したい場合は、この作業をする必要があります:

$(function() { 
    $('#q4').attr('id', 'q1'); 
    $('#q2').attr('id', 'q5'); 
}); 

ここで重要な部分は、IDを設定することはjQueryのか、バニラJavaScriptで行われているという事実ではないことに注意してください重要な部分は、DOMが操作の準備ができるまで待っていることです。あなたのコードは正常に動作します

$('div#q4').attr('id', 'q1'); 
$('div#q2').attr('id', 'q5'); 
5

。その後、同じIDを持つ2つのdivを持つことになります。もう一度q1を取得しようとすると、問題が発生します。

1

:何をしたい再配置する

var idCount = 1; 
$('div').each(function() { 
    $(this).attr('id', 'q' + idCount); 
    idCount++; 
}); 

が動的に一つずつセット:jqueryのを使用して

1

これを試してみてください。..

するvar divIdは=のdocument.getElementById( 'Q1');

divid.id = 'q5';

2

まず、要素にidを与えています。前の要素にすでに与えられているIDは、DOMに複数のIDを持つことはできません。とにかくコードが

var element = document.getElementById('q4'); 
    element.setAttribute('id', 'q7'); 
    if(document.getElementById('q7').innerHTML = "All is well") 
      alert(document.getElementById('q7').innerHTML); //to check if the new id has been set correctly 

フィドルhttp://jsfiddle.net/kmSHB/

関連する問題