根据DIV的内容将DIV替换为某类

时间:2014-04-30 08:50:29

标签: 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的条目。

6 个答案:

答案 0 :(得分:4)

试试这个:

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


为了迎合名称中包含空格的水果,例如Dragon fruit,请尝试:

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

答案 1 :(得分:0)

您可以使用正则表达式:

.replace(/[0-9]/g,'').trim()

/[0-9]/g将用空字符串替换所有数字。然后我在这里使用.trim()来删除尾随空格。您还需要使用.testclass

遍历每个.each()
$('.testclass').each(function() {
    $(this).text(function() {
        return $(this).text().replace(/[0-9]/g,'').trim()    
    })
});

答案 2 :(得分:0)

试试这个正则表达式:

testclass.replace(/[0-9 ]+/,"");

答案 3 :(得分:0)

您可以使用:

$('.testclass').each(function() {
    $(this).text(function() {
        return $.trim($(this).text().replace(/\d/g,''))    
    })
});

<强> Fiddle Demo

答案 4 :(得分:0)

试试这个,

some_fruits = []
    $('.testclass').each(function(){
        var regex = /\d+/;
        if ($(this).text().match(regex)) {
            str = $(this).text().replace(regex, " ");
            some_fruits.push(str)
        }

    });

JsFiddle

答案 5 :(得分:0)

我用的是split()

$(".testclass").each(function(){
    var txt=$(this).text();
    alert(txt.split(' ')[1])


})

http://jsfiddle.net/74nPW/