js 获得某节点的子节点,已知该子节点为div

<divclass="out"onmouseover="show(this)"><a>.....</a><h1>......</h1><divclass="btn">..... <div class="out" onmouseover="show(this)">
<a>.....</a>
<h1>......</h1>
<div class="btn">......</div>
</div>
如上,我想通过class为out的div获得class为btn的子元素div,鼠标划过父div获取,划过时调用show(it){....}这个function,函数体内通过it获取父节点并执行相关代码
如果是jquery的话,直接$(".out").mouseover(function(){.......})就行,但是因为这个整个div是页面加载后由js生成,所以无法用jquery绑定
而用js获取的话
show(it){
it.children.......//会导致不同的浏览器不兼容
}
我就想知道js怎么写能有类似jquery的$(".out").find(".btn")的功能
想要实现的功能是鼠标划过out-div,显示btn-div,鼠标移开,则btn-div隐藏
展开
 我来答
匿名用户
推荐于2016-07-31
展开全部
我试过了,有作用的,你要么就委派事件,如果还不可以的话,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>
追问
这样是可以的。不过我还想问一下,document.getElementsByClassName("btn");可以获取到页面中的id=abc的元素,可是如果这里写it.getElementsByClassName("btn");就不行。即使是获取ID,如document.getElementById("btn");可以,但是it.getElementById("btn");就不行?
追答
getElementsByClassName 这个方法对于某些浏览器是不兼容的,最好不要用这个

你可以用jquery的啊,你又不是不许用jquery,你提问已经透露了你使用jquery了
亓官蕴v1
2015-01-12 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:111
采纳率:0%
帮助的人:82.2万
展开全部
这个要高手来吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式