js获取子节点的方法

JavaScript038

js获取子节点的方法,第1张

你的oLi是所有li的集合,所以你使用oLi的时候应该加下标,才能表示你使用的 是 哪个li

所以

var oDiv = oLi[此处是下标].getElementsByTagName('div')

我试过了,有作用的,你要么就委派事件,如果还不可以的话,delegate知道吧???

<!DOCTYPE HTML>

<html>

<head>

<meta charset=UTF-8>

<meta name="keywords" content="白菜编辑部">

<title>白菜编辑部</title>

<style type="text/css">

</style>

<script type="text/javascript" src="jquery-1.8.0.min.js"></script>

<script type="text/javascript">

jQuery (function ($)

    {

    $ ('body').append ('<div class="out"><a>.....</a><h1>......</h1><div class="btn">btnbtnbtn</div></div>')

    $ ('div.out').mouseover (function ()

    {

    $ ('.btn').show ()

    }).mouseout (function ()

    {

    $ ('.btn').hide ()

    })

    })

</script>

</head>

<body>

</body>

</html>

你好,

在DOM中实际上有一个叫做textNode的元素,相应的还有document.createTextNode的JS方法,而在IE和Chrome浏览器中会将源代码中的换行符渲染成一个textNode,只是视觉上不可见。

然而,通过childNodes来获取子元素的时候,结果会包含这些textNode,所以会得到题主所见的情况。

而解决方法很简单,主要有两种:

第一,使用children代替childNodes

第二,遍历childNodes,根据nodeType过滤掉textNode

希望能解决你的问题。