Javascript 如果div包含文本,请更新另一个div内容

Javascript 如果div包含文本,请更新另一个div内容,javascript,jquery,html,magento,Javascript,Jquery,Html,Magento,我有一个magento网站,我正在尝试扫描表中的折扣代码,如果有折扣代码,则更新表中的另一部分 我尝试实现这一目标的代码如下: console.log("Discount Code Script Loaded"); $(function(){ if($('#checkout-review-table-wrapper p').text().replace(/\W/g, '')=="NathanTest9856"){ console.log("Found code")

我有一个
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>


折扣代码(NathanTest9856)

£15.00

这也可以在JSFIDLE中找到,网址为:

我似乎面临的问题是,它无法在
p
标记中检测到NathanTest9856的折扣代码


从以下错误中可以看出:
uncaughttypeerror:无法读取centurion.js:12处null的属性“text”
问题在于RegExp
/\W/g
。这将替换所有非单词字符(本例中为空格),您将保留折扣代码NathanTest9856,它不等于NathanTest9856

你可以用这样的条件来代替

/\(NathanTest9856\)/.test($('#checkout-review-table-wrapper p').text())

它将检查段落文本是否存在(NathanTest9856)字符串。

问题在于RegExp
/\W/g
。这将替换所有非单词字符(本例中为空格),您将保留折扣代码NathanTest9856,它不等于NathanTest9856

你可以用这样的条件来代替

/\(NathanTest9856\)/.test($('#checkout-review-table-wrapper p').text())

它将检查该段落的文本是否存在(NathanTest9856)字符串。

您可以使用jquery的
:contains
检查元素是否包含某些内容(在本例中是一些文本)

更改:

if($('#checkout-review-table-wrapper p').text().replace(/\W/g, '')=="NathanTest9856"){
致:

更新代码:

console.log(“已加载折扣代码脚本”);
$(函数(){
if($('checkout review table wrapper p:contains(“NathanTest9856”)){
console.log(“****找到代码****”);
$('span.price p').html('0.00英镑”);
控制台日志(“已更正的装运总额”);
}否则{
console.log(“未找到优惠券代码”)
}
console.log(“折扣代码脚本完成”);
});
console.log($('#checkout review table wrapper p').text().replace(/\W/g')


折扣代码(NathanTest9856)

£15.00


您可以使用jquery的
:contains
检查元素是否包含某些内容(在本例中是一些文本)

更改:

if($('#checkout-review-table-wrapper p').text().replace(/\W/g, '')=="NathanTest9856"){
致:

更新代码:

console.log(“已加载折扣代码脚本”);
$(函数(){
if($('checkout review table wrapper p:contains(“NathanTest9856”)){
console.log(“****找到代码****”);
$('span.price p').html('0.00英镑”);
控制台日志(“已更正的装运总额”);
}否则{
console.log(“未找到优惠券代码”)
}
console.log(“折扣代码脚本完成”);
});
console.log($('#checkout review table wrapper p').text().replace(/\W/g')


折扣代码(NathanTest9856)

£15.00


您的代码正在尝试将
折扣代码NathanTest9856
NathanTest9856
进行比较,将您的代码放在一个范围内,然后从中获取详细信息,这是您的代码的更新。可能与上述“可能”重复duplicate不包括jquery
:包含
,这似乎很适合此场景。您的代码正在尝试将
折扣代码NathanTest9856
NathanTest9856
进行比较。将您的代码放在一个范围内,然后从中获取详细信息,这是您的代码更新。上述“可能”的可能重复项duplicate不包括jquery
:包含
,这似乎非常适合此场景。