JQuery: содержит ограничение функции для точного соответствия - PullRequest
7 голосов
/ 31 марта 2011

Использование JQuery: содержит функцию для определения того, какая опция для выбора выбрана из переменной SESSION.

Функция содержит совпадает с неправильной опцией, так как это опция 'PADI Open Water' и другая 'PADI Open Water Scuba Instructor '

Как мы можем ограничить его, чтобы он соответствовал точному содержанию и не более?

$('option:contains("<?php echo $_SESSION['divelevel'];?>")').attr('selected', 'selected');

Ответы [ 3 ]

13 голосов
/ 31 марта 2011

Попробуйте использовать .filter(), чтобы найти нужный вариант.

$('option').filter(function(){
    return $(this).html() == "<?php echo $_SESSION['divelevel'];?>";
}).attr('selected', 'selected');
0 голосов
/ 27 августа 2013

Попробуйте добавить псевдо-функцию расширения:

$.expr[':'].textEquals = $.expr.createPseudo(function(arg) {
    return function( elem ) {
        return $(elem).text().match("^" + arg + "$");
    };
});

Тогда вы можете сделать:

$('p:textEquals("<?php echo $_SESSION['divelevel'];?>")').attr('selected', 'selected');
0 голосов
/ 28 декабря 2012

Ответ Rocket Hazmat помог мне в моем текущем проекте, где необходимо выделить значение cookie, и нужно выделить строку таблицы, к которой относится это значение cookie.Первоначально у меня был код:

$(".datalist TBODY TR:has('TD.itemId:contains(" + activeRowCookie + ")')").attr('id', 'activeRow');

, который работал нормально, пока мы не поняли, что ячейка таблицы может содержать значение activeRowCookie плюс других символов, но нам нужно было точное совпадение со всемсодержимое клетки.Кроме того, мы ищем ячейку , которая содержит это точное значение и не более, но затем мы выделяем строку , в которой находится эта ячейка, а не только саму ячейку.Поэтому я заставил его работать, адаптировав ответ к следующему:

$('.datalist TBODY TR TD.itemId').filter(function () {
  return $(this).text() == activeRowCookie;
}).parent().attr('id', 'activeRow');

И, да, этот начальный селектор должен быть таким, потому что мы не хотим, чтобы он смотрел на ячейки в THEAD элемент.

...