0

backend からの応答があります。今、いくつかのリンクを作成したいと思います。それらのリンクをクリックすると、そのリンクの下に html コンテンツが表示され、そのリンクをもう一度クリックすると、それらの html コンテンツが表示されます。jquery hide() と show() を知っています。しかし、ここでは for ループを使用しており、次のように DOM 要素を見つけることができません。

var html = "<div id=finalDiv></div>";
$("#finalDiv").dialog();
var ht;
for(var i in response) {
  ht +="<table><tr><td><label>A:</label></td><td><a onclick=\"showOneLink('"+response[i].B+"','"+i+"')\" >'"+response[i].A+"'</a></td></tr>";
  ht += "<tr><td><div id=show'"+i+"'Link style='dislay:none;'></div></td></tr></table>";
}
$("#finalDiv").append(ht);

showOneLink をクリックすると、非表示の div が表示されるはずですが、その div の DOM は作成されません。として 、

function showOneLink(B,i) {
  var htm = "<b>log:'"+B+"'</b>";
  $("#show"+i+"Link").css('display','block');
  $("#show"+i+"Link").append(htm);
}
4

2 に答える 2

1

問題は、この id 属性です。

id=show'"+i+"'Link

無効な HTML が生成されます。 id=show'5'Link

次のように変更します。

ht += "<tr><td><div id='show"+i+"Link' style='dislay:none;'></div></td></tr></table>";

toggle()の代わりにも使用しますcss():

 $("#show"+i+"Link").toggle();
于 2012-11-27T08:57:34.397 に答える
0

セレクターは文字列です。「」を閉じます

お気に入り$("#show"+i+"Link");

またはホールコード:

function showOneLink(B,i) {
  var htm = "<b>log:'"+B+"'</b>";
  $("#show"+i+"Link").css('display','block');
  $("#show"+i+"Link").append(ht);
}

トグルを使用する方がよい:

    $("#show"+i+"Link").append(ht);
    $("#show"+i+"Link").toggle();
于 2012-11-27T08:53:24.903 に答える