我看到了类似的问题,但它们比较简单:如果div包含特定文本,则隐藏它。这有效。
在我的情况下,我有更复杂的结构,它是动态变化的。它可以是一个带有一些JavaScript混合的div中的一些div。
从下面的示例中,如果任何元素的href中包含特定ID:“?id=my-text
”,我需要隐藏一个div(或向其应用hide类)。
<div **id="top-div"**>
<div>
<script type="text/javascript">
some java script code here...
</script>
<a target="_blank" href="some_very_long_url_that_contains_an_id_im_looking_for?id=my-text&bunch_of_other_parameters" width="300" height="250" border="0" alt="" style=" _width:298px; _height:248px; _overflow:hidden; border:1px solid #000000;margin:-1px;"></a>
<script>
some java script code here...
</script>
</div>
</div>
我尝试了以下方法,但没有任何运气:
$.expr[":"].containsNoCase = function(el, i, m) {
var search = m[3];
if (!search) return false;
var pattern = new RegExp(search,"i");
return pattern.test($(el).text());
};
$(document).ready(function() {
$("div a:containsNoCase('?id=my-text')").parent('div').hide();
});
编辑: 我遗漏了一个重要细节,需要隐藏的顶部div的ID是静态的:"top-div"。我只想对“top-div”内的div应用文本搜索逻辑,而不是整个页面。
Uncaught SyntaxError: Invalid regular expression: /?id=my-text/: Nothing to repeat
- isherwood$("a[href*='?id=my-text']").parent('div').hide();
??? - A. Wolff