如何在jQuery变量中操作HTML?

如何在jQuery变量中操作HTML?,jquery,Jquery,我试图操作存储在jQuery变量中的HTML。在将变量写入文档之前,我希望执行此操作 因此,我有一个变量定义为: var sighting = "<div><span class="feed_name"></span></div>"; 然后我将'sighting'变量写入页面: $(#sightings).append(sighting); 它将sighting变量中的HTML放入页面上的元素中 任何帮助都将不胜感激 谢谢 标记试试这个: va

我试图操作存储在jQuery变量中的HTML。在将变量写入文档之前,我希望执行此操作

因此,我有一个变量定义为:

var sighting = "<div><span class="feed_name"></span></div>";
然后我将'sighting'变量写入页面:

$(#sightings).append(sighting);
它将sighting变量中的HTML放入页面上的
元素中

任何帮助都将不胜感激

谢谢

标记

试试这个:

var sighting = "<div><span class=\"feed_name\"></span></div>",
    $elem = $(sighting).find("span.feed_name").text("hello world").parent();
$("#sightings").append($elem);
var-sighting=“”,
$elem=$(sighting.find(“span.feed_name”).text(“hello world”).parent();
$(“#目击”)。追加($elem);

需要调用
parent
来返回外部
div

我更喜欢这种方法,因为元素仍然是对象,因此更容易强制为函数,因此您可以对它们进行更多的控制

sighting = document.createElement('div');
然后,您可以将其作为DOM的一部分进行操作

$(sighting).addClass("feed_name").html(name);
$(sighting).appendTo("#sighting");
编辑

嗯。。。看来我误解了你的问题。我仍然希望使用
createElement()
函数生成元素

sighting = document.createElement('div');
sighting_contents = document.createElement('span');

$(sighting_contents).addClass("feed_name").html(name);
$(sighting).append(sighting_contents);
$(sighting).appendTo("#sightings");
更详细一点,但是如果你想的话,你可以把最后三个串成一行。。。我认为这更具可读性,并最终为您提供更多的控制,因为从技术上讲,您不应该在js中编写大量HTML,您可以创建元素并附加它们,但就编写大块标记而言,我认为将元素创建为这样的对象会给您带来更多的灵活性

您还可以通过更简单的方式将事件附加到这样添加的元素:

$(sighting).bind("click", function(event) {
  $(this).fadeOut();
});

哈哈,你是第一个得到它的,即使标题是“试试这个:”:D(我的答案被删除)嗨,秋葵,谢谢你的帮助!我最后选择了另一个答案,但你的答案也很有帮助马基·约瑟夫,谢谢你的回复!这听起来像是我想要的方法,但当我写:sighting1=document.createElement(“”);我得到js错误:error:uncaught exception:[异常…“字符串包含无效字符”代码:“5”nsresult:“0x80530005(NS_error\u DOM\u invalid\u character\u ERR)”位置:“Line:47”]有什么想法吗?谢谢,MarkYes,这是预期的错误。函数中不需要html,只需执行以下操作:
document.createElement('div')
您不能将HTML放入该函数中,只能将要创建的元素的标记放入其中。
$(sighting)。(“span.feed\u name”).HTML(name)
甚至不是有效的语法。您需要
$(sighting).find(“span.feed\u name”).html(name)
$(sighting).bind("click", function(event) {
  $(this).fadeOut();
});