2010-02-15 26 views
1
$('#test-list').append($(document.createElement("li")).attr({id: data.msg})); 
$('#'+data.msg).append($(document.createElement("img")).attr({src: "kep.php?kep=upload/"+data.msg+"&w=180;&h=150;"})); 

由於參數爲$('#'+data.msg).,所以不起作用。我不知道如何解決它。我想在#test-list中創建一個子元素,並將其命名爲data.msg變量的值。element.append中的JavaScript變量值

+1

什麼是'data.msg'價值,什麼** **究竟是不是工作?任何錯誤信息? – 2010-02-15 20:26:17

+2

是否隨着時間的推移data.msg變化?比如這是一箇中循環結構? – 2010-02-15 20:26:39

回答

2

你可以鏈這整個任務:

$("<li>") 
    .appendTo("#test-list") 
    .attr("id", data.msg) 
    .append("<img>") 
     .find("img:first") 
     .attr("src", "kep.php?kep=upload/" + data.msg + "&w=180;&h=150;"); 

將會產生如下:

<li id="foo"> 
    <img src="kep.php?kep=upload/foo&amp;w=180;&amp;h=150;"> 
</li> 

其中 「富」 是的data.msg值。

2

爲您塑造<li>您可以附加圖像。

例如:

$('#test-list').append(
    $('<li><img src="kep.php?kep=upload/' + data.msg + '&w=180;&h=150" /></li>') 
     .attr('id', data.msg) 
    ); 
2

嘗試了這一點

var img = $("<img>").attr({src: "kep.php?kep=upload/"+data.msg+"&w=180;&h=150;"}); 
$("<li>").attr({id: data.msg}).append(img).appendTo('#test-list'); 

如果您正在使用jQuery 1.4.x的,你可以這樣做:

var img = $("<img>",{src: "kep.php?kep=upload/"+data.msg+"&w=180;&h=150;"}); 
$("<li>",{id: data.msg}).append(img).appendTo('#test-list'); 
2

你要混合DOM電話和jQuery奇怪的方式。我建議用jQuery來完成這一切。元素鏈有點混淆了你所追加的內容以及你指定的屬性。您可以直接在創建元素時指定id等。

這應該工作:

$('#test-list').append($("<li id='"+data.msg+"'><img src='kep.php?kep=upload/"+data.msg+"&w=180;&h=150'></li>") 
0

如果我猜的話,我會說,你data.msg有不允許作爲選擇的目的(一般先從[-a-ZA-Z]和含有[ID的值_- \ da-zA-Z]。如果你的圖像名稱(data.msg)以數字開始,或者是一個數字,我會建議爲該ID添加一個前綴

無論哪種情況,你都可以在單個語句...

$("<li/>") 
    .attr("id", data.msg) 
    .append(
    $("<img/>") 
     .attr("src", "kep.php?kep=upload/"+data.msg+"&w=180;&h=150") 
) 
    .appendTo("#test-list");