我有一个div与类的证明,我想用jquery循环通过他们检查每个div如果一个特定的条件是真的负载。如果为真,它应该执行一个操作。
有人知道我会怎么做吗?
我有一个div与类的证明,我想用jquery循环通过他们检查每个div如果一个特定的条件是真的负载。如果为真,它应该执行一个操作。
有人知道我会怎么做吗?
试试这个…
$('.testimonial').each(function(){
//if statement here
// use $(this) to reference the current div in the loop
//you can try something like...
if(condition){
}
});
使用每个:'i'是数组中的位置,obj是你正在迭代的DOM对象(也可以通过jQuery包装器$(this)访问)。
$('.testimonial').each(function(i, obj) {
//test
});
查看api参考以获得更多信息。
你可以这样做
$('.testimonial').each(function(index, obj){
//you can use this to access the current item
});
divs = $('.testimonial')
for(ind in divs){
div = divs[ind];
//do whatever you want
}
我可能忽略了部分问题,但我相信你可以简单地这样做:
$('.testimonial').each((index, element) => {
if (/* Condition */) {
// Do Something
}
});
这使用jQuery的每个方法:https://learn.jquery.com/using-jquery-core/iterating/
你可以使用.filter简单地做到这一点。下面的例子将隐藏所有包含单词"something"的. tribute div:
$(".testimonial").filter(function() {
return $(this).text().toLowerCase().indexOf("something") !== -1;
}).hide();
jQuery的.eq()可以帮助您使用索引方法遍历元素。
var testimonialElements = $(".testimonial");
for(var i=0; i<testimonialElements.length; i++){
var element = testimonialElements.eq(i);
//do something with element
}
现在不使用jQuery也能很简单地做到这一点。
没有jQuery:
只需选择元素并使用.forEach()方法遍历它们:
const elements = document.querySelectorAll('.testimonial');
Array.from(elements).forEach((element, index) => {
// conditional logic here.. access element
});
在旧的浏览器中:
var testimonials = document.querySelectorAll('.testimonial');
Array.prototype.forEach.call(testimonials, function(element, index) {
// conditional logic here.. access element
});
试试这个例子
Html
<div class="testimonial" data-index="1">
Testimonial 1
</div>
<div class="testimonial" data-index="2">
Testimonial 2
</div>
<div class="testimonial" data-index="3">
Testimonial 3
</div>
<div class="testimonial" data-index="4">
Testimonial 4
</div>
<div class="testimonial" data-index="5">
Testimonial 5
</div>
当我们想要访问那些数据索引大于2的div时,我们需要这个jquery。
$('div[class="testimonial"]').each(function(index,item){
if(parseInt($(item).data('index'))>2){
$(item).html('Testimonial '+(index+1)+' by each loop');
}
});
工作实例小提琴
更精确的:
$.each($('.testimonal'), function(index, value) {
console.log(index + ':' + value);
});
使用简单的for循环:
var testimonials= $('.testimonial');
for (var i = 0; i < testimonials.length; i++) {
// Using $() to re-wrap the element.
$(testimonials[i]).text('a');
}
没有jQuery更新
document.querySelectorAll(“.testimonial”)。forEach(函数(元素,索引){ 元素。innerHTML = '感言' +(索引+ 1); }); < div class = "证明" > < / div > < div class = "证明" > < / div >
JavaScript ES6 .forEach() 通过Element.querySelectorAll()给出的类似数组的NodeList集合
document.querySelectorAll(“.testimonial”)。forEach((el, idx) => { El.style.color = "红色"; console.log(' ${idx}元素${el. log。tagName}, ID为#${el。Id}表示:${el。textContent}’); }); <p class="证言" id="1">这是一些文本</p> <div class="证物" id="2">Lorem ipsum</div>
你可以使用jQuery $each方法循环遍历所有的元素与类凭据。 I =>是集合中元素的索引,val给你特定元素的对象,你可以使用“val”来进一步访问元素的属性并检查你的条件。
$.each($('.testimonal'), function(i, val) {
if(your condition){
//your action
}
});