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:包含
,这似乎非常适合此场景。