我正在尝试将 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">£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/