【问题标题】:Iterate though a text string in jQuery遍历 jQuery 中的文本字符串
【发布时间】:2012-08-22 20:29:01
【问题描述】:

我正在编写一段代码,它将根据用户输入计算个性化产品的价格。在这种情况下,他们可以选择出现在成品中的消息(“生日快乐”或“周年快乐”或类似的东西)。

价格应根据消息中的字符数计算。因此,每个字符的价格应该增加 4 英镑,但每个空格只能增加 2 英镑。

我无法让我的代码遍历每个字符以确定它应该收取多少费用。有什么想法我哪里出错了吗?

如果我的解释不够清楚,这可能会有所帮助。 http://jsfiddle.net/6QhAz/1/

代码:

$(document).ready(function () {
  jQuery("#phrase").keyup(function () {     
    var length = this.value.length; 
    var price;
    var message =jQuery("#phrase").val;
    for ( var i=0; i > length; i++) {
      if (this.value === " " ) {
        price + 1.50;                       
      } else {
        price + 2.50;
      };
    };

    jQuery("#price").html('Price: £'+price);
  });
});

【问题讨论】:

    标签: jquery string iteration


    【解决方案1】:

    不用遍历字符,只需使用正则表达式来计算它们:

    $(document).ready(function()  {
        $("#phrase").keyup(function() {      
            var value = $(this).val();
            var spaces = (value.match(/\s/g) || []).length;
    
            var price = 1.5 * spaces + 2.5 * (value.length - spaces);
    
            $("#price").html('Price: £' + price);
        });
    });​
    

    演示:http://jsfiddle.net/6QhAz/6/

    【讨论】:

      【解决方案2】:
       $("#phrase").keyup( function () {    
                  var message =$("#phrase").val();        
                  var length = message.length; 
                  var price = 0;
      
                  for ( var i=0; i < length; i++) {
                      if (message.charAt(i) == " " ) {
                          price += 1.50;                       
                      } else {
                          price += 2.50;
                      };
      
                  };
      
                  $("#price").html('Price: &pound;'+price);
      
          });
      

      【讨论】:

        【解决方案3】:

        您可以使用字符串的charAt 方法逐个字母地遍历字符串:

        var name_str = "hello world!";
        for (var i=0; i < name_str.length; i++) {
            alert(name_str.charAt(i));
        }
        

        现场示例:http://jsfiddle.net/dM7Vd/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-11-17
          • 2010-11-12
          • 2018-05-15
          相关资源
          最近更新 更多