Хотя верхний ответ здесь - это обходной путь для конкретного случая спрашивающего, если вы ищете решение для фактического использования «начинается с» в именах отдельных классов:
Вы можете использовать этот пользовательский селектор jQuery, который я называю :acp()
для «Префикса класса». Код внизу этого поста.
var test = $('div:acp("starting_text")');
Это выберет все без исключения элементы <div>
, которые имеют по крайней мере одно имя класса, начинающееся с данной строки (в этом примере - стартовый_текст), независимо от того, находится ли этот класс в начале или где-либо еще в строках атрибута класса. .
<div id="1" class="apple orange lemon" />
<div id="2" class="orange applelemon banana" />
<div id="3" class="orange lemon apple" />
<div id="4" class="lemon orangeapple" />
<div id="5" class="lemon orange" />
var startsWithapp = $('div:acp("app")');
Это вернет элементы 1, 2 и 3, но не 4 или 5.
Вот объявление для пользовательского селектора :acp
, которое вы можете поместить в любом месте:
$(function(){
$.expr[":"].acp = function(elem, index, m){
var regString = '\\b' + m[3];
var reg = new RegExp(regString, "g");
return elem.className.match(reg);
}
});
Я сделал это, потому что я много раз взламывал веб-сайты GreaseMonkey, на которых у меня нет внутреннего контроля, поэтому мне часто нужно находить элементы с именами классов, которые имеют динамические суффиксы. Это было очень полезно.