$(document).ready(function(){
$('.shoppingBasket tr').each(function() {
var pName = $(this).find("span.pastorder-productname").text().trim().match(/\w*\s\X\d/g);
if (pName != null) {
var pQuantity = $(this).find("td.cart-quantity").text().trim();
pName = pName.replace(/\s+/g, '');
console.log(pName);
}
});
});
我有一小段代码来遍历收据中列出的所有项目并获取其名称(通常产品名称周围有额外的东西,我只想要产品名称“Something XY”我知道这个工作正常,好像我打印出pName这就是我的期望。
但是,我们发现我们使用的一些方法不喜欢名称中有空格,所以我的目标是使用.replace方法删除字符串中间的空格。
我尝试使用:
var pName = $(this).find("span.pastorder-productname").text().trim().match(/\w*\s\X\d/g).replace(/\s+/g, '');
但是我得到了错误:Uncaught TypeError:无法读取属性'replace'of null
之后我尝试在循环中添加它并且:
if (pName != null) {
var pQuantity = $(this).find("td.cart-quantity").text().trim();
pName = pName.replace(/\s+/g, '');
console.log(pName);
}
但我收到错误:Uncaught TypeError: Cannot read property 'replace' of null
我很确定我做的事情很傻,但我不确定是什么,有什么建议吗?
答案 0 :(得分:1)
我设法让它为我工作:
var pName = $(this).find("span.pastorder-productname").text().trim().replace(/\s+/g, '').match(/\w*\X\d/g);
这似乎给了我我想要的结果。
答案 1 :(得分:-2)
尝试:
if(pName!==null){
pName = pName.text().replace(/\s+/g, '');
}