Javascript 减去跨度中的数字
我想Javascript 减去跨度中的数字,javascript,jquery,variables,Javascript,Jquery,Variables,我想5左做-1例如变成4左 HTML <span class="small">5 left</span> 问题 如何添加新的数字存储编号4和文本left?使用带有回调函数的方法 //使用带有回调的text方法,其中第二个 //argumnet是旧文本 $(“.small:first”).text(函数(i,txt){ //用递减值替换文本 返回txt.replace(/\d+/,函数(m){ 返回m-1; }); }) 5左您可以使用替换: //将剩下的5存储在“
5左
做-1
例如变成4左
HTML
<span class="small">5 left</span>
问题
如何添加新的数字存储编号4
和文本left
?使用带有回调函数的方法
//使用带有回调的text方法,其中第二个
//argumnet是旧文本
$(“.small:first”).text(函数(i,txt){
//用递减值替换文本
返回txt.replace(/\d+/,函数(m){
返回m-1;
});
})
5左
您可以使用替换:
//将剩下的5存储在“numberStock”变量中
var numberStock=parseInt($(“.small:first”).text();
//用“numberStock-1”减去
var minusStock=numberStock-1;
控制台日志(minusStock);
//问题来了,我如何添加新内容?
var original=$(“.small:first”).text();
var toAdd=原始。替换(原始[0],最小库存);
$(“.small:first”).text(toAdd)代码>
5左
纯Javascript解决方案
Array.prototype.forEach.call(document.getElementsByClassName('small'),函数(a){
a、 innerHTML=a.innerHTML.replace(/\d+/,函数(v){
返回v-1;
});
});代码>
5左
我不确定我是否理解了你的问题,但如果我理解了,这里有一种方法可以做到这一点,这与你试图实现的目标非常接近
var numberStock = parseInt($('.small').text())
var minusStock = numberStock - 1;
$('.small').text(minusStock + ' left');
这是一把提琴,以防你想试一下
$('.small:first')。文本(minusStock+'left')
这对您提供的代码做了很多假设,顺便说一句,您的HTML是无效的(两个结束跨距,但只有一个打开跨距标记),如果还不太晚,只需重写代码逻辑,将数字存储在适当的JavaScript变量中,并使用HTML仅用于显示。现在和将来,它将为您节省很多麻烦。非常感谢您在没有jQuery的情况下所能做的一切?:-)考虑将它作为第二部分,因为OP可以有两个选项:-幻想>代码>文本内容< /代码>;我希望我能+2
它导致4
而不是4左
不,不是,检查span中的文本。啊哈没有看到--谢谢:-)考虑textContent
而不是innerHtml
参见
var numberStock = parseInt($('.small').text())
var minusStock = numberStock - 1;
$('.small').text(minusStock + ' left');