Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 减去跨度中的数字_Javascript_Jquery_Variables - Fatal编程技术网

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');