我正在尝试更改top(锚点链接ID)的click事件上的id元素。 例如:
<div id="top-nav-list">
将会是:
<div id="new-top-nav-list">
这是div中的内容:<div id="top-menu">...</div>
我的jsFiddle:fiddle
有任何想法或建议吗?感谢。
我的代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Menu</title>
<script type='text/javascript' src='http://code.jquery.com/jquery-1.7.1.js'></script>
<style type="text/css">
ul{
list-style:none;
}
#top-menu{
background:#CCCCCC;
width:120px;
padding:2px;
float:left;
margin-right:5px;
}
#left-menu{
background:#CCCCCC;
width:120px;
padding:2px;
float:left;
}
</style>
</head>
<body>
<script type='text/javascript'>
jQuery.noConflict();
jQuery(window).load(function(){
jQuery('#top').click('mouseover',function(e){
jQuery('top-nav-list').attr('id','new-nav-list');
});
});
</script>
<a href="#" id="top">Top</a> |
<a href="#" id="left">Left</a>
<br /><br />
<div id="top-menu">
<div id="top-nav-list">
<ul>
<li class="one"><a href="#">One</a></li>
<li class="two"><a href="#">Two</a></li>
<li class="three"><a href="#">Three</a></li>
</ul>
</div>
</div>
<div id="left-menu">
<div id="top-nav-list">
<ul>
<li class="one"><a href="#">One</a></li>
<li class="two"><a href="#">Two</a></li>
<li class="three"><a href="#">Three</a></li>
</ul>
</div>
</div>
</body>
</html>
答案 0 :(得分:3)
应该是:
jQuery('#top').click(function(e){
jQuery('#top-nav-list').attr('id','new-top-nav-list');
});
.click()
只有一个函数参数,前面没有事件名称参数(你似乎把它与.on()
混合起来)。您需要在#
的选择器中加入top-nav-list
。你在-top
中遗漏了new-top-nav-list
。
任何需要更改元素ID的设计对我来说都是可疑的。
答案 1 :(得分:1)
尝试参考。
jQuery('#top').click(function(e){
jQuery('#top-menu #top-nav-list').attr('id','new-top-nav-list');
});
答案 2 :(得分:0)
jQuery('top-nav-list').attr('id','new-nav-list');
(1)您错过了在代码中添加#
。它应该看起来像
jQuery('#top-nav-list').attr('id','new-nav-list');
(2)你也不能这样,像这样的2个事件处理程序
jQuery('#top').click('mouseover', function (e) { // wrong
(3) ID
应该是唯一的。您不能为多个元素使用相同的ID。而是使用class
。
答案 3 :(得分:0)
试试这个
jQuery('#top').on("click",function (e) {
alert(jQuery('#top-nav-list').attr('id'))
jQuery('#top-nav-list').attr('id', 'new-nav-list');
});