jQuery.contains()无法正常工作

时间:2015-04-17 05:56:05

标签: javascript jquery contains

我应该得到一个"警报"在下列情况下,但我没有得到任何"警报"。我正在尝试jQuery.Contains()的简单示例。

<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
        <script>
            $(document).ready(function() {
                var alpha = $.contains('body','p') {
                    alert(alpha);
            });
        </script>
    </head>
    <body>
        <p>This is a paragraph.</p>
    </body>
</html>

4 个答案:

答案 0 :(得分:9)

根据jQuery documentation,API只接受元素节点(不是JavaScript / jQuery 对象选择器

  

检查 DOM元素是否是另一个 DOM元素的后代。

     

仅支持元素节点;如果第二个参数是文本或   注释节点,$ .contains()将返回false。

     

注意:第一个参数必须是DOM元素,而不是jQuery对象或纯JavaScript对象。

您应该将代码更改为

$(function () {
   alert($.contains(document.body, $("p")[0])) //alerts true
   alert($.contains(document.body, document.getElementsByTagName("p")[0]));    //alerts true
})

答案 1 :(得分:1)

jQuery.contains 只返回 boolean 并且没有回调。 试试这段代码。

$(document).ready(function(){
    alert($.contains(document.body,$('p')[0]));
});

答案 2 :(得分:1)

试试这个:

$(document).ready(function(){
    var alpha = $.contains(document.body,$("p")[0])
    if (alpha) {
         alert(alpha);
    }
});

DEMO

  

参数总是DOM元素,而不是简单的文本。

有关详细信息,请参阅this.

答案 3 :(得分:0)

Use this code you have error on this line (var alpha = $.contains('body','p'){)
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
var alpha = $.contains('body','p');
alert(alpha);
});
</script>
</head>
<body>
<p>This is a paragraph.</p>
</body>
</html>