我正在学习JQuery。
<Div ID="top">
<DIV ID="testing1">
<DIV ID="testing2"><DIV ID="testing3">...<DIV ID="testing100"></Div>
由于PHP文件生成了数十个具有不同ID的DIV标记 我试图将DIV标记的动态ID传递给JQuery自定义函数:
<script>$(function() {
$("div").mouseover(function() {
var ID = $(this).children().attr('id');
alert(ID); });}); </script>
但它不起作用。
答案 0 :(得分:1)
如果您想要触发事件的DIV的ID,则可以使用$(this).id()
代替$(this).children().attr("id")
。
children()会为您提供DIV中所有元素的数组。但是从多个元素列表中获取一个ID会有问题;)
如果您想要DIV中第一个元素的ID,请尝试$(this).children().first().id()
。
答案 1 :(得分:1)
删除.children()
- 你想要div
的id属性,这样你就不需要去看它的孩子了。
此外,您可以使用.id()
代替.attr('id')
。
因此,只需要$(this).id()
来获取调用该函数的元素的id。
答案 2 :(得分:1)
要运行f.e的多个ID。您可以执行以下操作:
<script type="text/javascript">
$(function(){
$('a[voteid]').click (function(){
var nid = $(this).attr("voteid");
$.ajax({
type: "GET",
url: "vote.php",
data: "name="+ nid,
dataType: "html",
success:function(data){ $("span#voteajax" + nid).html(data)},
error:function(xhr,err,e){ alert( "Error: " + err ); }
});
return false;
});
});
</script>
PHP页面中的HTML将是这样的:
<span id="voteajax<? echo $nid;?>"><a class="vbutton" voteid="<? echo $nid;?>" title="Vote!"><? echo $listings['votes'];?></a></span>
希望这有帮助!
欢呼声, 约翰五世
答案 3 :(得分:0)
以下示例有效,事件冒泡导致三次调用,每次调用依次给出“testing2”,“testing1”和“top”的id。
<div id="top">
<div id="testing1">
<div id="testing2">x</div>
</div>
</div>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
$(function () {
$("div").mouseover(function () {
var ID = this.id;
alert(ID);
});
});
</script>