【问题标题】:How to wrap var img = new image with tag?如何用标签包装 var img = new image?
【发布时间】:2011-07-20 12:14:42
【问题描述】:

尝试在循环中预加载图像,它工作正常,但如何用另一个标签包装每个图像。执行此代码将不起作用,到目前为止我看不到问题。

...
var img = new Image();
$(img).load(function(){
$(this).hide();         
$('.container').append('<a href="/">'+this+'</a>');                                                     $(this).fadeIn();                                       
});
...

【问题讨论】:

    标签: javascript jquery image word-wrap


    【解决方案1】:

    您是否尝试过使用 $(this) 而不是 this。

    或者你为什么不使用:

      var $html = $(this).wrap('<a href="/" />');
      $('.container').append($html);
    

    【讨论】:

    • 另外你为什么要隐藏图像?您是否查看过您的来源以查看它是否存在但没有显示?
    • 抱歉,您的解决方案也不起作用,我之前做过,它只会返回 [object] 或根本不会换行...我现在正在检查@pier-paolo-ramon 解决方案。
    【解决方案2】:

    当这是一个 DOMElement 时,你不能使用 '&lt;a href="/"&gt;'+this+'&lt;/a&gt;'

    一个好的解决方案可以是:

    // Inside the callback
    $('<a href="/"></a>').append(this).appendTo('.container');
    

    请记住,如果您使用.wrap,它将返回原始元素,而不是包装器!

    【讨论】:

      【解决方案3】:

      你可以使用wrap

      http://api.jquery.com/wrap/

      【讨论】:

        【解决方案4】:

        它不知道用“this”做什么...如果您在此步骤没有对图像进行其他进一步操作,您是否可以这样做:

        ...
        $('.container').append('<a href="/"><img id=' + anIdOfYourChoosing + ' /></a>');
        ...
        

        而且你只是在事后追溯设置图像的属性。

        【讨论】:

          【解决方案5】:

          使用$.wrap

          $(img).wrap('<a href="#"></a>');
          

          【讨论】: