在JQuery中传递DIV标记的ID

时间:2010-04-28 06:19:57

标签: jquery

我正在学习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>

但它不起作用。

4 个答案:

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