为了账号安全,请及时绑定邮箱和手机立即绑定

怎么这样都是不包含啊?还测试了其他几种情况,传入参数为jquery对象,dom对象,明明有包含关系,但都显示不包含?

  $(function () {

                // var node_a = document.body.firstChild;

                var node_a =document.getElementById("divtest");

                

                // var node_b = document.body;

                var node_b = document.getElementsByClassName("title");

                var strTmp = "对象node_a";

                if ($.contains(node_a,node_b)) { //检测是否包含节点

                    strTmp += " 包含 ";

                }

                else {

                    strTmp += " 不包含 ";

                }

                strTmp += "对象node_b";

                $(".content").html(strTmp);

            });


正在回答

6 回答

node_b那个用id来获取可以实现


0 回复 有任何疑惑可以回复我~

一个是主body节点,一个是body孩子节点,应该是主body节点包含body孩子节点,即node_b,包含node_a,相反,node_a不包含 node_b

0 回复 有任何疑惑可以回复我~

以上的解释都不是你真正需要的答案。你错在getElementsByClassName("title")[0]。通过classname获取的dom对象是一个集合,不是一个,你要取得第一个后面要用数组的方式[0]

  var node_b = document.getElementsByClassName("title")[0];

0 回复 有任何疑惑可以回复我~

node_a与node_b对调,即$.contains(node_a,node_b)改成$.contains(node_b,node_a),显示“包含”

0 回复 有任何疑惑可以回复我~

contains里必须放dom对象而不是jQ对象,使用getElementById就可以

var node_a =document.getElementById("divtest");

var node_b = document.getElementById("test");


0 回复 有任何疑惑可以回复我~

node_a,node_b 位置写反了

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

怎么这样都是不包含啊?还测试了其他几种情况,传入参数为jquery对象,dom对象,明明有包含关系,但都显示不包含?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信