Это идеальный случай для регулярных выражений!
В этом случае, вы хотите сделать это:
$('#side-categories a').each(function() {
var href = $(this).attr("href");
if(href.match(/\sdog\s/)){
$(this).css("color", "red");
$(this).parents("ul").show().prev('.do').text('-');
}
});
Регулярные выражения хорошо учиться. В этом случае это довольно просто. /\sdog\s/
говорит «регулярное выражение, содержащее пробелы, строчную строчную собаку и еще несколько пробелов». Это включает в себя вашу первую строку, одновременно устраняя вторую (из-за пробела) и третью (сделайте точную строку dog
, за которой следует пробел).
Если вы используете переменную (например, table
?) Для хранения строки, которую вы ищете, вам нужно построить регулярное выражение. Важные линии становятся:
var regex = new RegExp("\s" + table + "\s");
if(href.match(regex)){
на основе ваших комментариев, это выглядит, как вы хотите, чтобы увидеть, если строка начинается с dog
. Если это так, вы можете использовать regex - вы просто хотите new RegExp("^" + table)
. Но в этот случай, вы действительно можете сделать лучше с регулярной строковой функцией, такой как if (href.indexOf(table) == 0)
.
В случае поиска table=dog*
, это довольно простой RegExp: new RegExp("table=" + table)
. Это выглядит как table=dog
в любом месте строки. Без regexp вы бы сделали аналогично выше, if (href.indexOf("table=" + table) != -1)
.
Вы можете использовать регулярное выражение. –
Я не вижу причины, чтобы проголосовать за мое сообщение. У меня действительно нет знаний или опыта с регулярным выражением. Если бы вы могли мне помочь, было бы здорово. – kfirba
Просто, чтобы быть ясным: 'href.indexOf (table)> = 0' является вашей попыткой поиска« собаки »? Является ли '' собака '' значением 'table'? –