javascript - jQuery 在另一个 HTML 元素中生成 HTML 元素

标签 javascript jquery html json

只是想知道如何使用 jQuery 将一个元素用作另一个元素的文本。 这是我的代码:

$("<a/>", {
  "class": "test",
  text:    $("<span/>", {
             "class":  "label", 
             text:     "My Label"
           }),
  click: function(){
    console.log('clicked');
  }
}).appendTo('#label_list');

输出:

<a class="test"></a>

在 span 上使用 .html() 时的输出:

<a class="test">My Label</a>

期望的输出:

<a class="test"><span class="label">My Label</span></a>

最佳答案

设置text元素的设置与设置 html 非常不同的一个元素。 text本质上是元素立即包含的字符数据,不包括任何嵌套标签。所以试图将 html 标签放在 text 中没有完成任何事情。你可以设置 html嵌套 <span><a> 内, 而不是设置 texthtml直接像你一样,更 jQuery 惯用的方式来完成你想要的是这样的:

$("<a/>").addClass("test")
         .click(function() {
             console.log("click!");
         })
         .append($("<span/>").addClass("label")
                             .text("my label")
         );

或者如果您坚持使用 html ,你可以这样做:

$("<a/>").addClass("test")
         .click(function() {
             console.log("click!");
         })
         .html('<span class="label">my label</span>');

编辑:另外,当您设置 text 时或 html ,您需要将其设置为字符串。您的示例代码没有执行任何操作,因为您没有使用字符串,您使用的是 $(...) , 这是一个非字符串对象(一个 jQuery 对象)。

另外,关于 text 之间的区别的更多信息和 html (以及它们必须是字符串的事实),请参阅 jQuery 文档的这些页面:

关于javascript - jQuery 在另一个 HTML 元素中生成 HTML 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8252153/

相关文章:

c# - 如何在 MVC4 中获取第二个下拉列表的值?

javascript - jQuery JSON根据数组集合的个数追加ul

javascript - ASP.NET 中的客户端时区

javascript - 在 react-native export 上使用大括号时

jquery - 在 mouseenter 上浏览数组中的一组图像

JavaScript Url Catcher 像 Twitter (Regexp)

javascript - 范围输入以更改文本和图像

html - 奇怪的图像调整大小问题

html - 如果事件下 zipper 接,文本下划线

Javascript split 不是一个函数