所以
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
希望能解决你的问题。