JQuery:包含完全匹配的函数限制
使用JQuery:contains函数来决定从SESSION变量中选择哪个选项。
contains函数匹配错误选项,因为它们是’PADI Open Water’选项和另一个’PADI Open Water Scuba Instructor’
我们如何限制它以匹配确切的内容,而不是更多?
$('option:contains("")').attr('selected', 'selected');
尝试使用.filter()
来查找所需的选项。
$('option').filter(function(){ return $(this).html() == ""; }).attr('selected', 'selected');
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
元素中的单元格。
尝试添加一个extend伪函数:
$.expr[':'].textEquals = $.expr.createPseudo(function(arg) { return function( elem ) { return $(elem).text().match("^" + arg + "$"); }; });
然后你可以这样做:
$('p:textEquals("")').attr('selected', 'selected');