javascript - 如何使用 Javascript 将 HTML 注入(inject)特定的 div

标签 javascript jquery html

我正在尝试将 HTML 注入(inject)到我无法访问 HTML 的页面上的 div 中,但似乎无法正确执行该功能。

HTML 结构看起来有点像这样:

<body class="ly_productdetails ProductDetails en en_GB">
    <div id="page">
    <div class="container">
        <div id="main" class="container">
            <div id="info">
                <h2 itemprop="name">Product Name</h2>
                <p><span itemprop="price">&pound;55.00</span></p>
                </div>
            </div>
        </div>
    </div>
</body>

JS 看起来像这样:

$(document).ready(function() {   
    var $body = $(document.body);   
    if (body.attr('class').match(/body.ly_productdetails.ProductDetails.en.en_GB/).length > 0) {
        $('#main .container').prepend("<div id="recommendations"><ul<li>Cross sell 1</li><li>Cross sell 2</li><li>Cross sell 3</li></ul></div>");
    }
});

我对 JS 很陌生,所以我对上述内容没有信心,但看不出我做错了什么。

有人可以看一看,让我知道我做错了什么吗?

提前致谢

亚当

JS fiddle https://jsfiddle.net/zL8L7zdk/

最佳答案

三件事。

1) body 未定义。您定义了 $body
2) 您的 RegEx 未正确评估。

"ly_productdetails ProductDetails en_GB".match(/body.ly_productdetails.ProductDetails.en.en_GB/); 返回 null

如果您想确保正文具有所有这些类,请改为执行以下操作:

$body.is(".ly_productdetails.ProductDetails.en.en_GB")

这将以无特定顺序匹配这些类。

3) 您在双引号字符串中使用了双引号。将 HTML 字符串中的 " 实例替换为 '

关于javascript - 如何使用 Javascript 将 HTML 注入(inject)特定的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29539527/

相关文章:

javascript - jquery中刷新DataTable插件表

jquery - jQuery.ready 对文档以外的其他东西有用吗?

html - 如何将图像并排放置

html - 在 footer.html 中使用 R Markdown 的作者字段

html - 删除 Outlook 2010 中的表格单元格间距

javascript - 输入字段为空时阻止提交表单

javascript - 打开帐户窗口时显示特定页面

javascript - i18next 单一翻译字符串回退/默认(Vue JS)

jquery - 如何按顺序执行延迟的javascript?

javascript - 如何在ajax成功的循环外访问$.each的值?