Оператор JQuery if для div

У меня есть jQuery, который проходит через несколько таблиц на моих страницах и суммирует элементы из этих таблиц. Однако, поскольку следующий основной раздел моего jquery проходит через каждую таблицу, мне было интересно, могу ли я ограничить таблицы на основе div-класса, поскольку он запускает запрос через заголовок.

$('table').each(function(){
 var tr = {};
 $(this).find('tr').each(function(){
 var key = $(this).find('td.job_code').text();
 var val1 = toSeconds($(this).find('td.hrs').text());
 //var val = +$(this).find('td.hrs').text().split(':')[0];
 if(tr[key]){
 tr[key]+=val1;
 }else{
 tr[key]=val1; 
 } 
});

Может быть, с чем-то вроде?

if($('div).class == "timecard"){}
5 ответов

Если я понимаю, что это то, что вы хотите

$('.timecard > table tr td').each(function(){

См. Пример ниже

http://jsfiddle.net/22bn8/


Не 100% уверены, что вы хотите, но если вам нужны все таблицы, в которых есть div:

$('table').each(function(){
 if( $(this).find('div.timecard').length!==0){
 /* something */ 
 }
}

Или, как рекомендовано в комментариях Билла:

$('table').has('div').each(function(){ /* something */ })


Используйте .hasClass() для своего теста -

if( $('div').hasClass('timecard') ) {...


Вы можете использовать .hasClass() следующим образом:

if($('div').hasClass('timecard')){
 //do something
}else{
 //do something else
}


Лучший способ сделать это - использовать .attr()

if ( $("#yourId").attr("class") == "yourclass" ) {
 // Your function here 
}

Вот демонстрационная скрипка

licensed under cc by-sa 3.0 with attribution.