JQuery селектор background-image - PullRequest
       11

JQuery селектор background-image

6 голосов
/ 12 января 2012

Есть ли способ идентифицировать селектор по специальному фоновому изображению. Есть ли способ сделать это?

<ul style="background-image:url(/test/test/shortcutsMenu-test.png);">

Я знаю, что это неправильный способ сделать это, но я манипулирую сайтом для мобильной версии того же сайта.

Ответы [ 3 ]

9 голосов
/ 12 января 2012

Вы можете использовать filter:

$("ul").filter(function() {
    return $(this).css("background-image") === "url(/test/test/shortcutsMenu-test.png)"; 
});

Это позволит вам выбрать ul элементов с фоновым изображением, определенным в другом месте, а не только встроенным. Вот рабочий пример .

Если вас это не волнует, и фоновое изображение всегда будет применяться встроенным в атрибуте style, вы можете использовать атрибут « содержит селектор » с атрибутом style.

Обновление (на основе комментариев)

Чтобы просто найти часть имени файла, вы можете использовать обычные строковые методы JavaScript, такие как indexOf (поскольку метод jQuery css возвращает строку):

$("ul").filter(function() {
    return $(this).css("background-image").indexOf("findThisString") > -1; 
});
1 голос
/ 12 января 2012

Один из способов сделать это:

$('ul[style*="/test/test/shortcutsMenu-test.png"]')

Пример JSFiddle здесь

0 голосов
/ 12 января 2012

Вероятно, вам понадобится селектор «Содержит слово»: http://api.jquery.com/attribute-contains-word-selector/

$('[style~="/test/test/shortcutsMenu-test.png"]').get();

Редактировать: Это неправильно.В этом случае следует использовать селектор «Атрибут содержит», так как он будет соответствовать подстрокам, а не словам, разделенным пробелами:

$('[style*="/test/test/shortcutsMenu-test.png"]').get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...