2015-02-22 2 views
2

У меня есть код которым JQuery рассчитывают некоторые дивы, где наверняка завтрак борту находятся как нижеJQuery счетных элементов с атрибутами

var board_bb1 = $('div[data-board="Bed And Breakfast"]').length; 
     var board_bb2 = $('div[data-board="Breakfast"]').length; 
     var board_bb3 = $('div[data-board="Breakfast Buffet"]').length; 
     var board_bb4 = $('div[data-board="Breakfast (Full Breakfast)"]').length; 
     var board_bb5 = $('div[data-board="Continental Breakfast"]').length; 
     var board_bb8 = $('div[data-board="Bed and Breakfast"]').length; 
     var board_bb6 = $('div[data-board="Full Breakfast"]').length; 
     var board_bb7 = $('div[data-board="Breakfast (Continental Breakfast)"]').length; 
     var board_bb = board_bb1 + board_bb2 + board_bb3 + board_bb4 + board_bb5 + board_bb6 + board_bb7 + board_bb8; 

атрибутов из данных бортовых поступает из службы API, а иногда завтрак иногда завтрак, кровать и завтрак и т.д. есть ли способ просто код выше, чтобы сосчитать все дивы, кто имеет слово Завтрак в данном бортового

ответ

4
$("div[data-board*='Breakfast']").length 

*= часть будет выглядеть для любого атрибута, содержащего вес ога breakfast.

ЕСЛИ вы не используете JQuery в проекте, в современных браузерах это будет работать:

document.querySelectorAll("div[data-board*='Breakfast']").length; 

Чтобы завершить это: решение кросс-браузерный, который будет работать весь путь обратно IE5.5

var allDivs = document.getElementsByTagName("div"); 
var count = 0; 
for (var i = 0, i < allDivs.length; i++) 
{ 
    if (allDivs[i].getAttribute("data-board") && allDivs[i].getAttribute("data-board").match(/Breakfast/)) 
    { 
     count++; 
    } 
} 

После этого count возвращает количество дивы, содержащих слово Breakfast в data-board атрибут

+0

'^ = 'является 'начинается с'. Вероятно, вы имели в виду '* =', то есть «Содержит». – haim770

+0

его счет только те элементы, у кого есть этот атрибут: «Завтрак» не все из них – CARASS

+0

да @ haim770, содержит это слово – CARASS

3

Вы можете использовать ~ оператор

$("div[data-board~='Breakfast']").length 
Смежные вопросы