我正在尝试使用jquery在某些HTML中查找某些元素,我想查找并隐藏包含标签文本'这是我的测试标签'和'是的另一个测试标签
的列表ID<ul id="mylist" class="top_level_list">
<li id="field66" class="myfield">
<div class="field_icons">
<div class="title">This is my title</div>
</div>
<label class="my_label" for="input71">This is my test label</label>
</li>
<li id="field20" class="myfield">
<div class="field_icons">
<div class="title">This another test title</div>
</div>
<label class="my_label" for="input71">Yet another test label</label>
</li>
我找到了jQuery .hide函数以及.find()函数,但我不确定如何使用其中的内容选择元素。
有人可以帮忙吗?
答案 0 :(得分:5)
这是一个稍微简单的解决方案。 $(".my_label:contains('This is my test label')").hide();
。你可以在这里看到它:http://jsfiddle.net/kPxTw/
答案 1 :(得分:2)
看看这里:http://jsfiddle.net/yPFgu/1/
<强> CODE 强>
var labelsToHide = ["This is my test label", "Another one"];
$("li").each(function () {
var txt = $(this).find("label").text();
if (labelsToHide.indexOf(txt) > -1 )
$(this).hide();
});
希望它有所帮助。
答案 2 :(得分:2)
在我的个人档案中,我有一个能够做你想要的原型。我可以和你分享。在调用代码之前,只需在文档中添加一些:
$.fn.filterText = function(text, caseSensitive){
var returnedObj = $(),
caseSensitive = caseSensitive || false,
$this = $(this);
if(typeof text == 'object'){
for(var i = 0; i < text.length; i++){
if(typeof text[i] == 'string'){
console.log(i);
returnedObj = returnedObj.add($this.filter(function(){
var search = caseSensitive ? text[i] : new RegExp(text[i], 'i')
return $(this).text().search(search) != -1;
}))
}
}
}else if(typeof text == 'string'){
returnedObj = returnedObj.add($this.filter(function(){
var search = caseSensitive ? text : new RegExp(text, 'i')
return $(this).text().search(search) != -1;
}))
}
return returnedObj;
}
然后,您将能够隐藏父线:
$('label').filterText(['This is my test label', 'Yet another test label'], true /*case sensitive?*/)
.parent()
.hide()
小提琴:http://jsfiddle.net/yKprx/
也许只需在$.fn
//Author @Karl-André Gagnon
:)
答案 3 :(得分:1)
您可以这样选择:
$('.title').each(function() {
if (($(this).text() == 'This is my test label') || ($(this).text() == 'Yet another test label')) {
$(this).hide();
}
});
答案 4 :(得分:1)
$("a:contains('Promotions')").closest('section').hide();
可能有用!
答案 5 :(得分:0)
在页面加载时隐藏元素时,添加window.onload
很有用。
<li>Your Text</li>
window.onload = function() {
jQuery("li:contains('Your Text')").hide();
}
如果在<a>
元素内链接元素(<li>
),则可以使用以下代码将文本隐藏在<a>
元素内:
<li><a href="yourLink">Your Text</a></li>
window.onload = function() {
jQuery("li a:contains('Your Text')").hide();
}