用jquery一次又一次地改变字符串

时间:2014-06-04 13:06:36

标签: javascript jquery html

我有一个像这样的HTML框

<div class="results">
 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 
</div>

我想在页面加载时,我得到这个div框:

<div class="results">
 , 
</div>

我的意思是每两个,, ,)替换为,,最后,如果其中2 ,在彼此之后重复,则会将其更改为一个(,)并且最后只有其中一个应该存在,仅此而已。

此外,

div可以是这样的:

<div class="results">
 , , , , hello , hi , one , two , three , , , , , , , , , , , , , , , , , , , , , , , , , 
</div>

所以我需要这个:

<div class="results">
hello , hi , one , two , three 
</div>

我们怎样才能用Jquery做到这一点?

2 个答案:

答案 0 :(得分:2)

你可以使用这样的东西

while ($("div.results").html().indexOf(", ,") != -1) {
  $("div.results").html($("div.results").html().replace(", ,",","))
}

答案 1 :(得分:1)

这是一个详细的脚本,可以向您展示在javascript中处理字符串的基础知识。 它可以写得更短,但这应该清楚地显示所采取的步骤。

<div class="results">
 , , , ,  ,  , one , two , three , , , , , , , , , , , , , , test , , , , , , , hi , , , , 
</div>
<div id="result">
</div>
<script>
$(function () { 
    var items = $(".results").text().split(","); // split the content of the "results" div into an array
    var result = []; //we'll put the results here

    items.forEach(function (item) { //for each of the items in the original string
        if (item.trim() != "") // if it's not empty after removing whitespace
        {
        result.push(item.trim()); //add it to the result array (and remove extra whitespace around it)
        }
    });

    if (result.length > 0) //if there was at least one item
    {
        $("#result").text(result.join(",")); //join the items into a string using a comma character as a separator and put it into the second div
    }
    else
    {
        $("#result").text(","); // there were no non-blank items, put single comma character into the second div, per your request
    }
});
</script>

Here也是一个示范。 这是一种比替换字符串更好的方法,因为它处理任何空格并删除前导/尾随逗号