element.append中的JavaScript变量值

时间:2010-02-15 20:21:04

标签: javascript jquery html ajax append

$('#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变量的值。

5 个答案:

答案 0 :(得分:2)

您可以在创建<li>时附加图片。

例如:

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

答案 1 :(得分: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 :(得分: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>")

答案 3 :(得分: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>

其中“foo”是data.msg的值。

答案 4 :(得分:0)

如果我不得不猜测,我会说你的data.msg有一个值不允许作为选择用途的ID(通常以[-a-zA-Z]开头并包含[_- \ 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");