我正在尝试替换类中的html内容。当我放置一些简单的东西时,它会起作用,例如<p>0</p>
。
但是当我提出以下内容时:
$('.festi-cart-menu-item').html('<a id="festi-cart" class="
festi-cart
festi-cart-customize
festi-cart-menu
festi-cart-click woocart-show "
href="https://example.com/cart/"
>
<div style=" line-height: 20px !important; " class="festi-cart-content">
<img class="festi-cart-icon" width="20" height="20" align="absmiddle" src="//example.com/wp-content/plugins/woocommerce-woocartpro/static/images/icons/user/custom_icon.png?1524043934" /><img style="display: none;" class="festi-cart-icon festi-on-hover" width="20" height="20" align="absmiddle" src="//example.com/wp-content/plugins/woocommerce-woocartpro/static/images/icons/user/on_hover/custom_icon.png?1524043934" />
<span
class="festi-cart-position budgeCounter position-right">
<p>
0 </p>
</span>
<span class="festi-cart-text-before-total">
</span>
<span class="festi-cart-text-after-total">
</span>
<span class="festi-cart-dropdown-arrow"><img src="https://example.com/wp-content/uploads/2018/04/path-2.png" alt="dropdown"></span>
</div>
</a> ');
这是错误的。
你能指出什么是错的吗?
答案 0 :(得分:1)
您必须指定您的字符串变量是多行的。 这是可能的,因为ES6与
let string = `bla
bla
bla`;
如果没有ES6,你可以做的事情就是
var string = '<html>'+
'<body>'+
'<input>'+
'</body>'+
'</html>';
答案 1 :(得分:0)
您的问题来自误解``
和var template
在这种情况下的工作原理。这些主要用于创建单行和多行的字符串,您应该使用双后退``
如果你想使这项工作以正确的方式编码,你可以声明另一个变量,例如: var template = `<a>...</a> ` //just put your template here
$('.festi-cart-menu-item').html(template);
并使用ES6语法new
撰写模板。
在你的情况下,它看起来像这样:
constructor(){
this.jokes = [
new Joke("What did the cheese say when it looked in the mirror?", "Hello-Me (Halloumi)"),
new Joke("What kind of cheese do you use to disguise a small horse?", "Mask-a-pony (Mascarpone)")
];
}