【问题标题】:jquery after method replacing entire page elements and not the selectorjquery after 方法替换整个页面元素而不是选择器
【发布时间】:2014-01-24 10:09:23
【问题描述】:

我正在抓取右侧的数据并尝试将其放在左侧图像的下方。当我使用该功能时,整个文档都会被覆盖。

var product_shop = jQuery('.product-shop');

jQuery('.product-img-box #image').after(product_shop[0].outerHTML);

网站网址:http://www.mjtrim.com/greek-key/33mm-greek-key-jacquard.html#colors

无论我使用insertAfter等什么方法,我都会得到相同的结果。

【问题讨论】:

  • 请使用$ 而不是jQuery
  • 你为什么使用outerHTML?
  • ^ 除非绝对必要,否则一旦开始就坚持使用 jQuery。另外,product_shop[0] 应该是什么(比如页面上的内容)
  • 如果我只使用 html() 我没有得到
    包装器。 html() 使用 innerHTML 方法,但我也想要包含元素..这就是我使用 [0].outerHTML
    的原因
  • 试试var product_shop = jQuery('.product-shop'); product_shop.find('script').remove(); jQuery('.product-img-box #image').after(product_shop);

标签: jquery dom-manipulation


【解决方案1】:
$(".product-img-box #image").after("<div>" 
     + $(".product-shop").html() + "</div>");

编辑:现在在图像之后添加所需的文本。

不完全确定它是否符合您的要求,但值得一试。您想要整个 .product-shop 框还是只想要描述文本?

【讨论】:

  • "试图把它放在左边图像的下方"
  • 页面上有多个图像在“左侧”
  • 左侧最大的产品图片。
  • 我得到与更新相同的结果。尝试在 ff 或 chrome 的控制台中运行该代码。您可能需要将“$”更改为“jQuery”。
  • 页面的那部分是动态生成的,意味着绑定$(stuff)时它不会在那里?
猜你喜欢
  • 2010-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-20
  • 2012-10-29
相关资源
最近更新 更多