我有一个对象(在这种情况下是来自js-kit的评级对象),如果评级值为"未评级",我想使其不可见.我无法获得正确的jQuery选择器来执行此操作.
即使下面的代码看起来应该可行,但事实并非如此.
$(".js-rating-labelText:contains('unrated')").css("visibility", "hidden");
Run Code Online (Sandbox Code Playgroud)
.js-rating-labelText 是一个在文本上设置的类.
tgm*_*dbm 22
您可以创建自己的选择器方法
例如,如果您希望能够执行以下操作:
$('.js-rating-label:hasText(unrated)');
Run Code Online (Sandbox Code Playgroud)
您可以hasText按如下方式定义方法
$.expr[':']['hasText'] = function(node, index, props){
return node.innerText.contains(props[3]);
}
Run Code Online (Sandbox Code Playgroud)
props[3] 包含':hasText'后括号内的文本.
bri*_*ris 19
有没有其他方法可以根据文本内容选择元素?
试试这个:
$('.js-rating-labelText').filter(function(){
return (/unrated/i).test($(this).text())
}).css('visibility', 'hidden');
Run Code Online (Sandbox Code Playgroud)
小智 7
也许问题在于:contains('Unrated')功能的一部分.将文本更改为任意随机值会产生相同的结果:
$("#ratingDiv:contains('somerandomtext')").hide();
Run Code Online (Sandbox Code Playgroud)