Javascript DIV属于元素,你怎么知道?

Javascript DIV属于元素,你怎么知道?,javascript,jquery,Javascript,Jquery,我有两个div,其中包含一些元素(图像、文本等),我需要知道哪个div保存了单击的元素。例如: 如果单击div1中的任何元素,则重定向到“pagina1.php” 如果单击div2中的任何元素,则重定向到“pagina2.php” 如何在jquery中实现这一点?我非常确定$(“”)。单击几乎适用于所有HTML元素(包括DIV)。这是因为事件会在元素的父元素链中出现气泡。比如: $('div.element-1 > *').click(function() { alert('first

我有两个div,其中包含一些元素(图像、文本等),我需要知道哪个div保存了单击的元素。例如:

  • 如果单击div1中的任何元素,则重定向到“pagina1.php”
  • 如果单击div2中的任何元素,则重定向到“pagina2.php”

如何在jquery中实现这一点?

我非常确定
$(“”)。单击
几乎适用于所有HTML元素(包括DIV)。这是因为事件会在元素的父元素链中出现气泡。比如:

$('div.element-1 > *').click(function() { alert('first div childs') });
<script>
$(document).ready(function()
{
$("#div1").click(function() { alert("something in div1 clicked"); }
$("#div2").click(function() { alert("something in div2 clicked"); }
$("#div3").click(function() { alert("something in div3 clicked"); }
}
</script>
</head>
<body>
<div id="div1"><table><tr><td><span>blah</span></td></tr></table><div>
<div id="div2"><span>blah2</span><div>
<div id="div3"><img src=""><div>

$(文档).ready(函数()
{
$(“#div1”)。单击(函数(){alert(“div1中的某些内容已单击”);}
$(“#div2”)。单击(函数(){alert(“div2中的某些内容已单击”);}
$(“#div3”)。单击(函数(){alert(“div3中的某些内容已单击”);}
}
废话
废话

我很确定,
$('')。单击
对几乎所有HTML元素(包括DIV)都有效。这是因为事件会通过元素的父元素链冒泡出来。例如:

<script>
$(document).ready(function()
{
$("#div1").click(function() { alert("something in div1 clicked"); }
$("#div2").click(function() { alert("something in div2 clicked"); }
$("#div3").click(function() { alert("something in div3 clicked"); }
}
</script>
</head>
<body>
<div id="div1"><table><tr><td><span>blah</span></td></tr></table><div>
<div id="div2"><span>blah2</span><div>
<div id="div3"><img src=""><div>

$(文档).ready(函数()
{
$(“#div1”)。单击(函数(){alert(“div1中的某些内容已单击”);}
$(“#div2”)。单击(函数(){alert(“div2中的某些内容已单击”);}
$(“#div3”)。单击(函数(){alert(“div3中的某些内容已单击”);}
}
废话
废话

您可以将单击事件绑定到div中的所有元素,您可以在此处找到如何执行此操作,您可以为每个div制作类似的内容:

$('div#1 > *').click(function(e) {
  //This will tell you the tagname of the element that was click.
  alert($(this).tagName);

  //this will redirect you to pagina1.php might not be the best choice
  window.location.replace('pagina1.php');
});
你也必须对第2课做同样的事情

您必须注意,我所做的选择器仅用于div元素的第一个子元素


Saludos。

您可以将单击事件绑定到div中的所有元素,您可以在此处找到如何执行此操作,您可以为每个div制作类似的内容:

$('div#1 > *').click(function(e) {
  //This will tell you the tagname of the element that was click.
  alert($(this).tagName);

  //this will redirect you to pagina1.php might not be the best choice
  window.location.replace('pagina1.php');
});
你也必须对第2课做同样的事情

您必须注意,我所做的选择器仅用于div元素的第一个子元素


Saludos。

只需将单击处理程序绑定到DIV(您的内容包装器):


只需将单击处理程序绑定到DIV(您的内容包装器):


要避免将单击处理程序绑定到所有子级。事件委派使您能够在公共祖先(本例中为DIV)上仅绑定一个单击处理程序…我认为您的解决方案更好,感谢您的建议,现在我将提高使用jqueryBinding click处理程序对所有子项绑定的技能,这是您希望避免的。事件委派使您能够在公共祖先(本例中为DIV)上仅绑定一个click处理程序…我认为您的解决方案更好,谢谢您的建议,现在我将使用jquery提高我的技能