Javascript 使用<;a>;可单击并div,不带<;a>;不可点击

Javascript 使用<;a>;可单击并div,不带<;a>;不可点击,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我有以下javascript代码: <script> $(".ucp_link").click(function() { window.location = $(this).find("a").attr("href"); return true; }); </script> $(“.ucp_链接”)。单击(函数(){ window.location=$(this.find(“a”).attr(“href”); 返回true; }); 这个h

我有以下javascript代码:

<script>
  $(".ucp_link").click(function() {
    window.location = $(this).find("a").attr("href"); 
    return true;
  });
</script>

$(“.ucp_链接”)。单击(函数(){
window.location=$(this.find(“a”).attr(“href”);
返回true;
});
这个html代码:

<div class="ucp_menu"><div class="ucp_inner"><h4>all item</h4><div  class="ucp_link"><a href="p.php?p=">item1</a></div><div class="ucp_link">item  2</div></div></div>
所有项目项目2

我想使带有链接的div可单击,但不允许没有链接的div。

只需使用
:has()
选择器检查
ucp\u link
元素中是否有
link
元素

$(“.ucp\u链接:有(a)”。单击(函数(){
window.location=$(this.find(“a”).attr(“href”);
返回true;
});

所有项目
项目2

我假设包装
div
是样式化的,这就是为什么要这样做

你并不需要javascript,相反,你可以使用css让链接覆盖
div

例如:

.ucp_link {
  position: relative;
}
.ucp_link a {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
}
如果包装器
div
未设置样式(无填充等),则只需:

.ucp_link a {
  display: block;
}

$(“div>a”)。单击(function(){});这与php有什么关系?