Javascript需要可以代表任何数字的变量

时间:2014-02-05 15:41:39

标签: javascript jquery html variables numbers

我是一个javascript新手所以这可能是一个愚蠢的问题。我正在尝试生成一个带有短语“(x items)”的脚本,并将其更改为“(x)”,其中x可以表示任何数字。

这就是我现在所拥有的:

<script type="text/javascript">
   $(document).ready(function(){
       function changeText(){
           $(".CartLink:contains('2 items')").html('<a href="/cart.php">Cart <span>(2)</span></a>');
            }
       changeText();
       $(document).ajaxSuccess(function() {
       changeText();
       });
    });
</script>

上面的脚本能够将短语“(2 items)”替换为“(2)”但我需要修改脚本,以便2可以是任何数字。谢谢。

这是.CartLink元素包含的HTML:

<li style="display:" class="CartLink"><a href="/cart.php">Cart <span>%%GLOBAL_CartItems%%</span></a></li>

7 个答案:

答案 0 :(得分:0)

您可以使用拆分来分隔计数和文本。

http://jsfiddle.net/B2meD/

 $( document ).ready(function() {
  $(".CartLink").html('<a href="/cart.php">Cart <span>'+$(".CartLink").text().split(" ")[0]+'</span></a>');
});

答案 1 :(得分:0)

Javascript作为字符串替换方法。所以你可以简单地删除项目部分。

var foo = ('2 items');
var newFoo = foo.replace("items", "");

然后newFoo会变成('2')

答案 2 :(得分:0)

你从哪里得到“2”变量?

var items = 2;
items ++; //items = 3;
$('.Cart').html("Items in cart:" + items.toString() + ". Foo");

看看我如何添加“+”来添加字符串?

我必须补充一点,这只是糟糕的js。

使您的商品变量:

var str = "(Items 2)";
var numberStr = "(" + str.split(" ").pop(); //makes "(2)" or use .replace or whatever works.

请记住,从字符串创建变量将导致另一个字符串。如果你想把你的新项目var作为一个数字来操作,你必须得到一个像这样的整数,

var numberStr = "(3)";
var int = parseFloat(numberStr.replace(/["'()]/g,""));

答案 3 :(得分:0)

S('。CartLink')。text($('。CartLink')。text()。split('')[0])

答案 4 :(得分:0)

理想情况下,这应该是服务器端任务。但如果你有一个限制要求你做这个客户端......

您无需替换所有html。您只需修改span

的文字即可
$('.CartLink span').text(function(_, val) {
    return val.replace(' items', '');
});

答案 5 :(得分:0)

如果用这个替换你的changeText函数,它应该可以正常工作:

function changeText() {
    var itemCountSpan = $(".CartLink a span")
    if (/(\d+) items/.test(itemCountSpan.text())) {
        itemCountSpan.text(RegExp.$1);
    }
}

答案 6 :(得分:0)

这是一个简单的RegEx版本。

$(document).ready(function(){
    function changeText(){
        $(".CartLink").each(function() {
            var newhtml = $(this).html().replace(/\((\d+) items\)/, "($1)");
            $(this).html(newhtml);
        });
    }
    changeText();
});

它使用CartLink类查看字符串(x items)的每个元素,其中x是一个或多个数字,并删除单词“items”。 $1是在(\d+)括号内匹配时设置的属性,允许我们在替换字符串中使用我们想要的数字。