javascript - 根据 DIV 的内容将 DIV 替换为特定的类

标签 javascript jquery html replace

我有一些带有文本的 DIV,如下所示:

<div class="testclass"><b><i>1 Banana<i></b></div>
<div class="testclass"><b><i>2 Oranges<i></b></div>
<div class="testclass"><b><i>2 Peaches<i></b></div>
<div class="testclass"><b><i>1 Watermelons<i></b></div>
<div class="testclass"><b><i>1 Dragon Fruit<i></b></div>

我试图获取每个测试类中的文本并创建一个列表,如下所示:

    Banana
    Oranges
    Oranges
    Peaches
    Peaches
    Watermelons

我正在努力解决的是用什么都不替换数字,或者用重复项将新条目插入列表中。

到目前为止我所拥有的内容如下:

var fruits = $('.testclass').text();
fruits.replace(/1 /,"") ; 

这给了我一个如下所示的列表:

Banana
2 Oranges
2 Peaches
1 Watermelons

我对 jQuery 相当陌生,所以我不知道如何正确迭代列表或如何正确复制前面有 2 的条目。

最佳答案

试试这个:

var fruits = [];
$('.testclass').each(function(i, el) {
    var values = $(this).text().split(' ');
    for (var i = 0; i < values[0]; i++) {
        fruits.push(values[1]);
    }
});

输出:

["Banana", "Oranges", "Oranges", "Peaches", "Peaches", "Watermelons"]

Example fiddle


要满足名称中带有空格的水果(例如火龙果),请尝试以下操作:

var fruits = [];
$('.testclass').each(function(i, el) {
    var values = $(this).text().split(' ');
    var count = parseInt(values.shift(), 10);
    for (var i = 0; i < count; i++) {
        fruits.push(values.join(' '));
    }
});

Updated fiddle

关于javascript - 根据 DIV 的内容将 DIV 替换为特定的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23383673/

相关文章:

c# - 如何在 ASP.NET MVC 中的 Javascript 中输入 Razor(不带引号)

javascript - 使用 $ajax 对象重新运行 ajax 调用?

jquery - 非常简单的 jQuery 覆盖

javascript - 如何在MVC5中通过服务器端数据表ajax调用传递文本框值

javascript - 创建时用内容填充 w2ui

javascript - JQuery 删除模糊上的空白

javascript - 使用 nodejs 和 pug 的客户端模板

javascript - 自执行函数语法和回调语法解释

javascript - 如何选择下一个没有特定 CSS 类的 div

css - 容器中的两个 float 列,增加容器高度以匹配列的最佳方法?