2014-10-02 2 views
0

У меня есть следующий код, который я намерен использовать на нескольких сайтах. Тем не менее, я чувствую, что он может быть лучше приспособлен для удовлетворения моих потребностей.jQuery - Find Div, который содержит часть ID

if($('#container > div:first').attr('id') === 'banner1') { 
    // Do Something 
} else { 
    // Do Nothing 
} 

Моя проблема 'banner1' это- на самом деле 'bannerGallery', 'bannerLarge' в разных областях, это связано с общими проектами и людей, работающих по-разному.

Вместо того, чтобы использовать 3 отдельных бита кода, ищущих 3 отдельных идентификатора. Могу ли я просто найти первый div внутри # контейнера, у которого есть идентификатор, содержащий «баннер», который затем будет нацелен на все 3?

Я пробовал это, но он всегда запускает первую функцию независимо от того, что такое первый идентификатор Divs.

if($("#container > div:first[id*='banner']")) { 
     // Do Something 
    } else { 
     // Do Nothing 
    } 

Любая помощь будет замечательной!

Благодаря

+1

'$ (...)' возвращает объект JQuery, так что всегда truthy. –

ответ

1

Вы можете использовать селектор startsWith атрибут в сочетании с JQuery в is() проверки:

// if the first DIV in #container has an id starting with "banner" 
if($('#container > div:first').is('[id^=banner]')) { 
    ... 
} 

ИЛИ

// if the first DIV in #container has an id starting with "banner" 
if($('#container > div:first[id^=banner]').length) { 
    ... 
} 
1

Вы можете сделать:

if($('#container > div:first').attr('id').indexOf('banner') > -1) { 
1
$("div:first[id^='banner']) 

он будет показывать идентификатор которые начинаются с "флагом"

Смежные вопросы