5

別の質問に基づいて以下を試しました:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="jquery-latest.min.js"></script>
<script type="text/javascript">
$("div p:contains('text')").parent('div').hide();
</script>

<title>test</title>
</head>

<body>

<div>
<p>text</p>
</div>

</body>
</html>

しかし、うまくいきません。明らかな何かが欠けていますか?

4

3 に答える 3

9

document.ready イベントを見逃しました。http://api.jquery.com/ready/を参照してください

<script type="text/javascript">
$(document).ready(function () {
   $("div p:contains('text')").parent('div').hide();
});
</script>
于 2012-08-02T12:26:38.420 に答える
6

DOM の読み込みが完了した後にのみ、jQuery を実行する必要があります。

$(document).ready(function() {
  $("div p:contains('text').parent('div').hide();
});
于 2012-08-02T12:26:33.653 に答える
4

コードに問題はないようです。

$(document).ready(function () {
    $("div p:contains('text')").parent('div').hide();
});

これをチェックしてください。

アップデート

すべてこれをチェックしてください。これは、上記の大文字と小文字を区別しないバージョンです。

// Add the case-insensitive selector
$.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 p:containsNoCase('text')").parent('div').hide();
});
于 2012-08-02T12:27:25.473 に答える