我正在构建一系列金额,但需要删除美元符号。我有这个jQuery代码:
buildList($('.productPriceID > .productitemcell'), 'pricelist')
它正在返回
pricelist=$15.00,$19.50,$29.50
我需要删除美元符号,但似乎无法弄明白。尝试使用.trim,但我认为只删除了空格。
抱歉新手问题!在此先感谢您的帮助!
这是完整的代码:
function buildList(items, name) {
var values = [];
items.each(function() {
values.push(this.value || $(this).text());
});
return name + '=' + values.join(',');
}
var result = [
buildList($('.productCodeID > .productitemcell'), 'skulist'),
buildList($('.productQuantityID > .productitemcell > input'), 'quantitylist'),
buildList($('.productPriceID > .productitemcell'), 'pricelist')
];
var string = result.join('&');
这是javascript运行之前的原始代码
<span class="productPriceID">
<div class="productitemcell">$15.00</div>
<div class="productitemcell">$19.50</div>
<div class="productitemcell">$29.50</div>
</span>
答案 0 :(得分:25)
编辑:现在回答我已经运行的代码。
查看更新的代码,这应该有效:
var result = [
buildList($('.productCodeID > .productitemcell'), 'skulist'),
buildList($('.productQuantityID > .productitemcell > input'), 'quantitylist'),
buildList($('.productPriceID > .productitemcell'), 'pricelist')
];
result[ 2 ] = result[ 2 ].replace(/\$/g, '');
var string = result.join('&');
旁注:您可以稍微缩短buildList
功能:
function buildList(items, name) {
return (name + '=') + items.map(function() {
return (this.value || $(this).text());
}).get().join(',');
}
原始回答:
如果你有一个字符串,只需使用 .replace()
。
var str = "pricelist=$15.00,$19.50,$29.50";
str = str.replace(/\$/g, '');
或者你是说你有一个包含数组的变量pricelist
?如果是这样,请执行以下操作:
var pricelist = ["$15.00","$19.50","$29.50"];
for( var i = 0, len = pricelist.length; i < len; i++ ) {
pricelist[ i ] = pricelist[ i ].replace('$', '');
}
编辑:听起来好像buildList
方法会返回一个数组。
检查的一种方法是:
alert( Object.prototype.toString.call( result[2] ) );
看看它给你的东西。
无论如何,假设它是一个数组,这是第二个例子的更新版本。
var result = [
buildList($('.productCodeID > .productitemcell'), 'skulist'),
buildList($('.productQuantityID > .productitemcell > input'), 'quantitylist'),
buildList($('.productPriceID > .productitemcell'), 'pricelist')
];
// verify the data type
alert( Object.prototype.toString.call( result[ 2 ] ) );
// loop over result[ 2 ], replacing the $ with ''
for( var i = 0, len = result[ 2 ].length; i < len; i++ ) {
result[ 2 ][ i ] = result[ 2 ][ i ].replace('$', '');
}
var string = result.join('&');
答案 1 :(得分:6)
var price = $("div").text().replace("$", "");