我有一个magento
网站,我试图扫描表中的折扣代码,如果存在折扣代码,则更新表的另一部分。
我要尝试实现的代码如下:
console.log("Discount Code Script Loaded");
$(function(){
if($('#checkout-review-table-wrapper p').text().replace(/\W/g, '')=="NathanTest9856"){
console.log("Found code");
$('span.price p').html("£0.00");
console.log("Shipping Total Corrected");
} else{
console.log("Coupon Code Not Found")
}
console.log("Discount Code Script Completed");
});
console.log($('#checkout-review-table-wrapper p').text().replace(/\W/g, ''));
页面代码简化如下:
<body>
<div id="checkout-review-table-wrapper">
<p>
Discount Code (NathanTest9856)
</p>
</div>
<span class="price">
<p>
£15.00
</p>
</span>
</body>
这也可以在jsfiddle中找到:https://jsfiddle.net/nlangerdevcenturion/qu6bvrc0/35/
我似乎要面对的问题是,它无法在p
标签中检测到NathanTest9856的折扣代码。
从以下错误中您可以看到:Uncaught TypeError: Cannot read property 'text' of null at centurion.js:12
答案 0 :(得分:1)
问题是RegExp /\W/g
。这将替换所有非单词字符(在这种情况下为空格),并且您将保留为 DiscountCodeNathanTest9856 ,该数字不等于 NathanTest9856
您可以改用这样的条件
/\(NathanTest9856\)/.test($('#checkout-review-table-wrapper p').text())
这将检查该段落的文本中是否存在(NathanTest9856)字符串。
答案 1 :(得分:1)
您可以使用jquery的:contains
检查元素是否包含某些内容(在这种情况下为某些文本)。
更改:
if($('#checkout-review-table-wrapper p').text().replace(/\W/g, '')=="NathanTest9856"){
收件人:
if ($('#checkout-review-table-wrapper p:contains("NathanTest9856")')) {
更新的代码:
console.log("Discount Code Script Loaded");
$(function() {
if ($('#checkout-review-table-wrapper p:contains("NathanTest9856")')) {
console.log("**** Found code ****");
$('span.price p').html("£0.00");
console.log("Shipping Total Corrected");
} else {
console.log("Coupon Code Not Found")
}
console.log("Discount Code Script Completed");
});
console.log($('#checkout-review-table-wrapper p').text().replace(/\W/g, ''));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
<div id="checkout-review-table-wrapper">
<p>
Discount Code (NathanTest9856)
</p>
</div>
<span class="price">
<p>
£15.00
</p>
</span>
</body>
更新的小提琴:https://jsfiddle.net/qu6bvrc0/59/
或者,您可以在.text()
上使用多种香草javascript方法,请参见此处以了解更多信息:https://stackoverflow.com/a/1789952/2181514
例如:
if ($('#checkout-review-table-wrapper p').text().indexOf("NathanTest9856")) >= 0) {