点击“点击”,我将myDiv
的ID更改为myDiv1
。现在我想使用替换myDiv1
的新ID(myDiv
)。
$("#myDiv").attr('id', 'myDiv1');
但是我无法使用myDiv1
进行进一步操作:
$("#myDiv1").mouseover(function() {
$('#bottom_link').show(400);
});
答案 0 :(得分:2)
更好的方法(IMO)可以:
var myDiv = $("#myDiv");
这会将div缓存为jQuery对象,因此您可以随意操作它,并且仍然可以使用它来执行操作而无需再次选择它。
例如:
myDiv.attr("id", "someOtherId");
myDiv.css("background-color", "orange");
小提琴: http://jsfiddle.net/DWeSL/
编辑:
然后,您还可以将事件绑定到此:
myDiv.click(function(){
alert("boo");
});
答案 1 :(得分:1)
并非我同意动态更改ID,但您的问题可能是您尝试在新ID下存在之前将事件处理程序附加到该元素。请尝试使用jQuery's delegate来附加活动。
编辑:添加一些代码,因为$ .delegate不是最友好的学习函数......
$.delegate('#myDiv1', 'mouseover', function() {
$('#bottom_link').show(400);
});
这将确保现在或将来任何时间存在ID为“myDiv1”的任何元素都将绑定此事件处理程序。
答案 2 :(得分:0)
不是通过id选择你的div,而是通过classname选择它。你会做的
<div = "myDiv" class="myDiv"></div>
$(".myDiv").mouseover(function() {
......your code here.......
});
答案 3 :(得分:0)
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script>
$(function(){
$("#myDiv").text('Test1');
$("#myDiv").attr('id', 'myDiv1');
$("#myDiv1").text('Test2');
});
</script>
</head>
<body>
<div id="myDiv">Test</div>
</body>
</html>