需要我创建一个新的“实例”吗?

时间:2012-02-10 09:04:30

标签: jquery

This是我的代码:

HTML

<div style="display:none;">
    <div id="example">
        <div class="child">Hello</div>
    </div>    
</div>        

<div id="result"></div>

的jQuery

htmlSedi="";
sedi(1);
sedi(2)

$("#result").append(htmlSedi);    

function sedi(param) {
    var htmlSede = $('#example');

    if(param==1)
        htmlSede.find('.child').hide();

    htmlSedi=htmlSedi+htmlSede.html();
}

结果我的方面是至少将一个“Hello”打印到div result中,但事实上它并没有;我认为问题在于:

var htmlSede = $('#example');

指向同一个对象。那么,我如何创建#example的新“实例”?

5 个答案:

答案 0 :(得分:1)

您错过了ID选择器#

填充#result的正确方法是:

htmlSedi.append(htmlSede.html());

您的代码应如下所示:

sedi(1);
sedi(2);

function sedi(param) {
    var htmlSedi = $("#result");
    var htmlSede = $('#example');

    if(param==1)
        htmlSede.find('.child').hide();

    htmlSedi.append(htmlSede.html());
}

另外,请看一下:

Jquery Dom-Manipulation

你可以根据自己的需要使用任何你想要的,.append().prepend().after(),......

答案 1 :(得分:1)

代码中的一些错误

$("result").append(htmlSedi); 

应该是

$("#result").append(htmlSedi);

答案 2 :(得分:1)

您可以使用.clone()

$("#example").clone();

jQuery Docs

答案 3 :(得分:1)

您有错误

 $("result").append(htmlSedi);    

应该是

 $("#result").append(htmlSedi);    

编辑 - 您可以使用.clone(true);

htmlSedi="";
sedi(1);
sedi(2)

$("#result").append(htmlSedi);    

function sedi(param) {
    var htmlSede = $('#example').clone(true);

  if(param==1){
        htmlSede.find('.child').hide();
  }

    htmlSedi=htmlSedi+htmlSede.html();
}

pastebin http://jsbin.com/ovejil/edit#preview

答案 4 :(得分:0)

$("#result").append(htmlSedi); /*you forgot the #*/

你也忘记了sedi(2)

上的分号