$(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);
});
node_b那个用id来获取可以实现
一个是主body节点,一个是body孩子节点,应该是主body节点包含body孩子节点,即node_b,包含node_a,相反,node_a不包含 node_b
以上的解释都不是你真正需要的答案。你错在getElementsByClassName("title")[0]。通过classname获取的dom对象是一个集合,不是一个,你要取得第一个后面要用数组的方式[0]
var node_b = document.getElementsByClassName("title")[0];
node_a与node_b对调,即$.contains(node_a,node_b)改成$.contains(node_b,node_a),显示“包含”
contains里必须放dom对象而不是jQ对象,使用getElementById就可以
var node_a =document.getElementById("divtest");
var node_b = document.getElementById("test");
node_a,node_b 位置写反了