2016-09-19 5 views
0

Jqueryを使用してdivを徐々に表示しようとしていますが、変数をクラスとして表示するための正しい構文を取得することに問題があります。ここに私のコードです:Jqueryで変数をクラス名として表示

var mydiv_id = 'wacek_'+$a; /wacek_1, wacek_2, etc 

$("<div class="+mydiv_id"></div>").appendTo('body'); 
$(".col-sm-4").append($('.'+mydiv_id)); 
$('.'+mydiv_id).hide(); 

私はこの権利を得ることはできません、どんな助けも大歓迎です。

+0

私は少し混乱しています。まず 'body 'に追加します。次に、追加された要素を取り出して '$(" .col-sm-4 ")'に追加します。次に、同じ要素を再度取得して非表示にします。達成しようとしていることを説明できますか?私は、少なくともあなたがチェーンの部分を隠すことができます: '.append($( '。' + mydiv_id).hide())' – Rajesh

答えて

1

$("<div class='"+mydiv_id+"'></div>").appendTo('body'); 

代わりの

$("<div class="+mydiv_id"></div>").appendTo('body'); 

を使用してくださいより理解するために、スニペットの下に確認してください。

var $a = '1'; 
 
var mydiv_id = 'wacek_'+$a; //wacek_1, wacek_2, etc 
 

 
$("<div class='"+mydiv_id+"'></div>").appendTo('body'); 
 
$(".col-sm-4").append($('.'+mydiv_id)); 
 
$('.'+mydiv_id).hide();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

0

変数を文字列で連結していて、変数の後に+がありません。変数の後に文字列が再び来る場合は、両側にそれが必要です。また、"(または')で作成された文字列を囲むことを忘れないでください:これはそう - 以下の両方のステートメントで

$("<div class='" + mydiv_id + "'></div>") 

を、変数は最後の式である - ので、あなたは追加の+を必要としません正しい:

$('.' + mydiv_id); 
1
var mydiv_id = 'wacek_'+$a; /wacek_1, wacek_2, etc 

$("<div class="+mydiv_id+"></div>").appendTo('body'); 
$(".col-sm-4").append($('.'+mydiv_id)); 
$('.'+mydiv_id).hide(); 

はこれを試してみてください。あなたのコードで1つが欠落していました。

0
// This is not a proper comment. Use `//` for comments. 
var mydiv_id = 'wacek_'+$a; //wacek_1, wacek_2, etc 

// Missing your quotes around your class attribute. 
// missing concatenation. Also, instead of appending it to the body 
// and then appending it to the your .col-sm-4, just 
// append it to the column in the first place: Change 2nd line to: 
$("<div class='"+mydiv_id+"'></div>").appendTo('.col-sm-4'); 

// Remove third line.. 
$('.'+mydiv_id).hide(); 
-1

使用この concatinateすべての文字列を1つの不戦勝1

$("<div class="+mydiv_id+">"+"</div>") 

それとも

$("<div class="+mydiv_id+"></div>") 
1

チェックthis fiddle

あなたは小さな構文エラーがあった:

$("<div class="+mydiv_id"></div>").appendTo('body'); 

$("<div class='"+mydiv_id+"'></div>").appendTo('body'); 

する必要があり、あなたがに最初にしてボディにあなたのHTMLを追加している理由を私は理解していませんDIV。 jQuery関数をチェーン化することも簡単です。代わりに、この手段:あなたはこれを使用することができます

$("<div class='"+mydiv_id+"'></div>").appendTo('body'); 
$(".col-sm-4").append($('.'+mydiv_id)); 
$('.'+mydiv_id).hide(); 

:同じ結果と

$("<div class='"+my_id+"'>s</div>").appendTo('.col-sm-4').hide(); 

を。

+0

ありがとう、そこに理由がある - あなたが追加することを提案divはそのまま存在する後で動的に作成されます。 – Vonder

0

他の回答が示すように、クラスを追加する際に構文エラーがあります。コードは別のやり方で行うことができるので、文字列の作成について心配する必要はありません。 jQuery docs。また、要素をドキュメントに追加し、要素を選択して、再度適用する理由はありません。要素を作成するときに要素への参照があるので、その参照のみを使用してください。

var myDiv = $("<div></div>", { 
     "class" : mydiv_id 
    }); 
myDiv.hide() 
myDiv.appendTo(".col-sm-4"); 

または1行に:

var myDiv = $("<div></div>", { 
     "class" : mydiv_id 
    }).hide() 
    .appendTo(".col-sm-4"); 
+0

ありがとうございます、それは理由があります - 後で動的に作成されるので、あなたが追加することを提案するdivは存在しません。 – Vonder

関連する問題