如何循环div并获取每个值

时间:2013-08-28 19:12:17

标签: javascript jquery

我试图找出如何在我的div中获取每个值。我正在使用

var cart = $('.basic-cart-cart-node-title.cell').text(); 

正在给出OI-01OP-01OS-10-5SOR-04OR-05的结果 我需要逐个查看它们:OI-01, OP-01, OS-10-5S, OR-04 OR-05

这样我就可以将它们与另一个领域相匹配 如果你想进一步帮助我,我在页面上有另一个div:

var ParNum = $('.assess-title').text();

我想比较var cart返回的值,看看该值是否在ParNum中。如果它在那里,我想申请一个班级。

非常感谢任何帮助。

谢谢!

7 个答案:

答案 0 :(得分:3)

您可以使用.map()方法将值存储在数组中:

var values = $('.basic-cart-cart-node-title.cell').map(function() {
    return $.trim( $(this).text() );
}).get(); 

用于检查数组中是否存在ParNum值:

var does_exist = values.indexOf(ParNum) > -1;

答案 1 :(得分:2)

尝试使用迭代元素:

var text = '';
$('.basic-cart-cart-node-title.cell').each(function (i, div) {
  text += ' ' + $(div).text();
});

或者这样得到一个匹配的div元素数组:

var divs = $('.basic-cart-cart-node-title.cell').toArray();
for (var i = 0; i < divs.length; i++) {
  // $(div).text();
}

原因是$('.basic-cart-cart-node-title.cell')一次返回所有div,你需要遍历结果。更具体地说,$(selector)返回所谓的“包裹集”。它可以用来访问每个匹配元素(如上所示),也可以用于将任何其他jQuery函数同时应用于整个集合。更多信息here

答案 2 :(得分:2)

var text = "";

$('.basic-cart-cart-node-title.cell').each(function(){ 
   text += $(this).text() + ", ";
});
// remove the last ", " from string
text = text.substr(0, text.length -2);

答案 3 :(得分:0)

var cart = [];
$('.basic-cart-cart-node-title.cell').each(function {
    cart.push($(this).text());
}

答案 4 :(得分:0)

这将执行您在问题中提到的匹配和类添加。

var ParNum = $('.assess-title').text();
$('basic-cart-cart-node-title.cell').each(function () {
    if ($(this).text() == ParNum) {
        $(this).addClass("someclass");
    }
}

答案 5 :(得分:0)

你应该尝试使用

var cart ='';
$('.basic-cart-cart-node-title'.find('.cell').each(function()
{
 cart = cart + $(this).val();
});

希望它适合你。

答案 6 :(得分:-1)

var cart = $('.basic-cart-cart-node-title.cell').text().match(/.{5}/g);

这将为您提供一个包含5个字符长的项目的数组。正则表达式不是很快,但循环可能会更慢

或者更容易阅读,并使用逗号字符串:

var cart = $('.basic-cart-cart-node-title.cell').text(); // get text
cart = cart.match(/.{1,5}/g); // split into 5 char long pieces
cart = cart.join(",",); join on comma