【问题标题】:jQuery: Can't append img tag after .findjQuery:无法在 .find 之后附加 img 标签
【发布时间】:2011-09-08 14:28:56
【问题描述】:

我正在制作的一个页面上发生了一个奇怪的问题:

myDiv.append("<img src='...' />")            <--- WORKS
myDiv.find("p").append("whatever")         <--- WORKS
myDiv.find("p").append("<img src='...' />")  <--- FAILS!

在最后一个上没有附加任何内容。我看不出通过 Firebug 出了什么问题。当我创建新的测试页面时,所有三个工作,但我无法让它在真实页面上工作。有什么想法会发生什么吗?

【问题讨论】:

  • 你能提供一个jsfiddle.net 来证明这个问题吗?
  • 它可以在新的测试页面上运行?...这意味着我们将无法重现此问题。
  • @Fosco 是对的。见jsfiddle.net/J5MSf

标签: jquery html dom append image


【解决方案1】:

抱歉,由于页面上的脚本冲突,我发现了这个问题并不奇怪。我有另一个脚本自动删除该区域中的空元素,显然它认为 img 标签是空的。我给出的第一个示例有效的原因是因为它将图像置于删除脚本工作的范围之外。呵呵。

【讨论】:

    【解决方案2】:

    我猜你有一些隐藏图像的 CSS。类似的东西

    p img{
       display: none
    }
    

    或任何数量的其他样式都会导致所描述的问题,并解释为什么它在单独的页面中起作用。我建议检查 dom 并查看元素是否确实存在,如果存在,请跟踪样式以查看隐藏它的内容。

    【讨论】:

    • 不,我检查了 html,甚至没有插入任何标签。
    【解决方案3】:

    您是否尝试过使用 find('p').html('...') 代替。

    我想知道这是否适用于您的情况,因为我不明白为什么会有任何问题。

    【讨论】:

    • 我要看的另一件事是 P 标签中已经存在的 html。会不会是格式错误导致图像无法正确渲染。
    猜你喜欢
    • 1970-01-01
    • 2017-06-14
    • 1970-01-01
    • 1970-01-01
    • 2012-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多