【问题标题】:jquery element creation bug?jquery 元素创建错误?
【发布时间】:2013-08-05 21:43:12
【问题描述】:

所以我试图在 Jquery 中动态创建一个元素,然后使用 jquery wrap 将其包装在一个更简单的元素中。我尝试了以下方法,但没有成功:

jQuery('<div />',{
       "class":"b",
       text:"testing"
       }).wrap('<div class="red" />');

jsfiddle

然后经过搜索,我发现this question,这似乎是我要找的。​​p>

不幸的是,该代码用于放置在创建的元素内,而不是包装创建的元素。我试着弄乱它,但到目前为止,在我看来,没有办法简单地包装一个 Jquery 创建的元素。

这是函数中的错误吗?还是我错过了什么?

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    这个sn-p:

    jQuery('<div />',{
           "class":"b",
           text:"testing"
           }).wrap('<div class="red" />');
    

    返回对第一个对象的引用,即您创建的 div,而不是您包装它的那个。这是另一种可行的方法:

    http://jsfiddle.net/vVxzc/

    var test = jQuery('<div />',{
           "class":"b",
           text:"testing"
           }).wrap('<div class="red" />').parent();
    $('#append2').append(test);
    

    【讨论】:

      【解决方案2】:

      您正在将包装的项目附加到另一个元素,这将导致它从它所在的任何地方删除,即包装在红色 div 中。您要做的就是将红色 div 附加到元素。 wrap 将原始元素返回给您,而不是包装元素。

      var test = jQuery('<div />',{
             "class":"b",
             text:"testing"
             }).wrap('<div class="red" />').parent();
      $('#append2').append(test);
      

      http://jsfiddle.net/mowglisanu/ySbg7/1/

      【讨论】:

        猜你喜欢
        • 2015-12-19
        • 2012-03-24
        • 1970-01-01
        • 2018-05-21
        • 1970-01-01
        • 2012-08-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多