我有一些带有文字的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的条目。
答案 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"]
为了迎合名称中包含空格的水果,例如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(' '));
}
});
答案 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)
}
});
答案 5 :(得分:0)
我用的是split()
$(".testclass").each(function(){
var txt=$(this).text();
alert(txt.split(' ')[1])
})