使用JQuery:包含用于决定从SESSION变量中选择哪个选项的函数。
contains函数匹配错误选项,因为它们是'PADI Open Water'选项和另一个'PADI Open Water Scuba Instructor'
我们如何限制它以匹配确切的内容而不再?
$('option:contains("<?php echo $_SESSION['divelevel'];?>")').attr('selected', 'selected');
答案 0 :(得分:13)
尝试使用.filter()
,找到您想要的选项。
$('option').filter(function(){
return $(this).html() == "<?php echo $_SESSION['divelevel'];?>";
}).attr('selected', 'selected');
答案 1 :(得分:0)
Rocket Hazmat的回答能够帮助我完成当前项目,其中设置了cookie值,并且需要突出显示该cookie值所涉及的表行。我原来的代码是:
$(".datalist TBODY TR:has('TD.itemId:contains(" + activeRowCookie + ")')").attr('id', 'activeRow');
在我们意识到表格单元格可以包含activeRowCookie值 plus 其他字符之前,哪个工作正常,但我们需要与单元格的整个内容完全匹配。此外,我们正在寻找包含该精确值的单元,但我们突出显示该单元所在的行,而不仅仅是单元本身。所以我通过调整答案来实现以下目的:
$('.datalist TBODY TR TD.itemId').filter(function () {
return $(this).text() == activeRowCookie;
}).parent().attr('id', 'activeRow');
而且,是的,初始选择器确实需要这样,因为我们不希望它看到THEAD
元素中的单元格。
答案 2 :(得分:0)
尝试添加extend伪函数:
$.expr[':'].textEquals = $.expr.createPseudo(function(arg) {
return function( elem ) {
return $(elem).text().match("^" + arg + "$");
};
});
然后你可以这样做:
$('p:textEquals("<?php echo $_SESSION['divelevel'];?>")').attr('selected', 'selected');