Javascript 在href标记中onMouseOver时,如何在jQuery中分配动态元素id?
我有3个超链接和DIV随机生成的PHP脚本与动态ID。比如说,Javascript 在href标记中onMouseOver时,如何在jQuery中分配动态元素id?,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我有3个超链接和DIV随机生成的PHP脚本与动态ID。比如说, <a href="http://www.example.com/find.php?id=xy1" id="xy1" onMouseover="analyze('final', 'xy1')">xy1</a> <a href="http://www.example.com/find.php?id=ay2" id="ay2" onMouseover="analyze('final', 'ay2')">
<a href="http://www.example.com/find.php?id=xy1" id="xy1" onMouseover="analyze('final', 'xy1')">xy1</a>
<a href="http://www.example.com/find.php?id=ay2" id="ay2" onMouseover="analyze('final', 'ay2')">ay2</a>
<a href="http://www.example.com/find.php?id=am3" id="am3" onMouseover="analyze('final', 'am3')">am3</a>
<div id="xy1"></div>
<div id="ay2"></div>
<div id="am3"></div>
function analyze(db, target) {
jQuery.ajax({
type: "GET",
url: "toThumb.php",
data: 'db=' + db + '&id=' + target,
success: function(output){ $("#"+target).html(output); }
});
}
这里,必须根据mouseover事件自动分配元素id#xy1
。类似于xy1作为变量名的值。可能在下一次的onMouseover
事件中将是ay2或am3
我试图设置$(“#”+target).html(输出)代码>它失败了。。。如果我单独使用$(“#xy1”).html(输出)进行测试
或$(“#ay2”).html(输出)
或$(“#am3”).html(输出)代码>工作正常
我的编码方式错了吗?或者,我是否可以使用此
而不是传递参数?您可以使用
在html中,必须像下面这样在数据目标属性中传递id
示例:-
<a href="http://www.example.com/find.php?id=xy1" data-target="xy1" onMouseover="analyze(this)">xy1</a>
<a href="http://www.example.com/find.php?id=ay2" data-target="ay2" onMouseover="analyze(this)">ay2</a>
<a href="http://www.example.com/find.php?id=am3" data-target="am3" onMouseover="analyze(this)">am3</a>
<div id="xy1"></div>
<div id="ay2"></div>
<div id="am3"></div>
你可以用
在html中,必须像下面这样在数据目标属性中传递id
示例:-
<a href="http://www.example.com/find.php?id=xy1" data-target="xy1" onMouseover="analyze(this)">xy1</a>
<a href="http://www.example.com/find.php?id=ay2" data-target="ay2" onMouseover="analyze(this)">ay2</a>
<a href="http://www.example.com/find.php?id=am3" data-target="am3" onMouseover="analyze(this)">am3</a>
<div id="xy1"></div>
<div id="ay2"></div>
<div id="am3"></div>
首先,id在DOM中应该是唯一的。您可以使用下面的类来代替它
请检查下面的工作演示
功能分析(ele){
$(“+ele.id).html(ele.innerHTML);
}
首先,id在DOM中应该是唯一的。您可以使用下面的类来代替它
请检查下面的工作演示
功能分析(ele){
$(“+ele.id).html(ele.innerHTML);
}
问题是由于文档中的ID重复。根据:
id=id
元素的唯一标识符。
文档中不能有多个具有相同id值的元素
此外,在不同的容器中显示这些项也没有意义,因为您可能也只是用PHP生成它们
函数分析(节点){
$('#container').html(node.innerHTML/*whatever*/);
}
(空)
问题是由于文档中的ID重复。根据:
id=id
元素的唯一标识符。
文档中不能有多个具有相同id值的元素
此外,在不同的容器中显示这些项也没有意义,因为您可能也只是用PHP生成它们
函数分析(节点){
$('#container').html(node.innerHTML/*whatever*/);
}
(空)
多亏了。我在编码上做了三个改变
(1) 已删除id
<a href="http://www.example.com/find.php?id=xy1" onMouseover="analyze('final', 'xy1')">xy1</a>
<a href="http://www.example.com/find.php?id=ay2" onMouseover="analyze('final', 'ay2')">ay2</a>
<a href="http://www.example.com/find.php?id=am3" onMouseover="analyze('final', 'am3')">am3</a>
(3) 更改了$(“#”+目标).html(输出)
到$(“+target).html(输出)代码>
现在问题解决了…多亏了。我在编码上做了三个改变
(1) 已删除id
<a href="http://www.example.com/find.php?id=xy1" onMouseover="analyze('final', 'xy1')">xy1</a>
<a href="http://www.example.com/find.php?id=ay2" onMouseover="analyze('final', 'ay2')">ay2</a>
<a href="http://www.example.com/find.php?id=am3" onMouseover="analyze('final', 'am3')">am3</a>
(3) 更改了$(“#”+目标).html(输出)
到$(“+target).html(输出)代码>
现在问题解决了…不要使用相同的id两次。不要使用相同的id两次。行$(“#”+getTargetId).html(数据)代码>不会更改为(例如)$(“#xy1”).html(数据)代码>。它保持不变代码>不会更改为(例如)$(“#xy1”).html(数据)代码>。它保持不变。我的目标不是捕获ID。我只是试图在特定的DIV中显示文本。@ak SE,嗯,我没有提到捕获ID。事实上,您不需要捕获ID。嗯,我的答案包含一个“在特定DIV中显示文本”的示例代码。您可以很容易地用另一个值替换节点ID。对不起,我的话。我不是那个意思。实际上,我想分配一个动态id,比如$(“#xy1”).html(输出….)代码>。在这里,idxy1
必须自动更改。输出将基于Ajax显示。我刚才已经详细阐述了我的问题。我的目的不是捕获ID。我只是试图在特定的DIV中显示文本。@ak SE,嗯,我没有提到捕获ID。事实上,您不需要捕获ID。嗯,我的答案包含一个“在特定DIV中显示文本”的示例代码。您可以很容易地用另一个值替换节点ID。对不起,我的话。我不是那个意思。实际上,我想分配一个动态id,比如$(“#xy1”).html(输出….)代码>。在这里,idxy1
必须自动更改。输出将基于Ajax显示。我刚才已经详细阐述了我的问题,谢谢。您的代码很有趣,并且有一定的实用性。但是,并不像我预期的那样,谢谢。您的代码很有趣,并且有一定的实用性。但是,这并不像我预期的那样有效。