Теперь, когда я лучше понимаю ваш вопрос, вы пытались использовать родные селекторы Sizzle , чтобы делать то, что вы пытаетесь сделать?
содержит селектор слов должен делать то, что вы ищете:
$('#lightbox').find("[class~='lightbox']");
Получив элемент, вы можете легко получить имя класса, вызвав attr(...)
:
var className = $('#lightbox').find("[class~='lightbox_']").attr('class');
Это даст вам только весь атрибут класса, а не отдельные классы для элемента. Вам нужно будет split(' ')
имя_класса, чтобы получить отдельные классы и найти соответствующий класс.
function getSimilarClass(className, searchString) {
var classes = className.split(' ');
for(var i = 0; i < classes.length; i++) {
if (classes[i].indexOf(searchString) != -1) {
return classes[i];
}
}
return null;
}
var className = $('#lightbox').find("[class~='lightbox_']").attr('class');
var match = getSimilarClass(className, "lightbox_");
Однако этот процесс имеет недостатки, поскольку может быть несколько тегов с похожими классами, которые не будут учитываться, а отдельные теги могут потенциально иметь несколько классов с похожими именами.