ID替换和新ID用于Jquery中的进一步处理

时间:2011-10-20 14:53:36

标签: jquery

点击“点击”,我将myDiv的ID更改为myDiv1。现在我想使用替换myDiv1的新ID(myDiv)。

$("#myDiv").attr('id', 'myDiv1');

但是我无法使用myDiv1进行进一步操作:

$("#myDiv1").mouseover(function() {
    $('#bottom_link').show(400);
});

4 个答案:

答案 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>