Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 禁用`<;a>;`链接内部<;ul>;问题_Javascript_Jquery_Html - Fatal编程技术网

Javascript 禁用`<;a>;`链接内部<;ul>;问题

Javascript 禁用`<;a>;`链接内部<;ul>;问题,javascript,jquery,html,Javascript,Jquery,Html,基本上,我有一个嵌套列表的HTML代码块,如下所示: <ul> <li class="level_1"> <a href="level1.html">Insulated And Extruded</a> <ul class="level_2"> <li><a href="">TE77</a></li> <li><a

基本上,我有一个嵌套列表的HTML代码块,如下所示:

<ul>       
  <li class="level_1">
    <a href="level1.html">Insulated And Extruded</a>
    <ul class="level_2">
      <li><a href="">TE77</a></li>
      <li><a href="">TE78</a></li>
      <li><a href="">T77</a></li>
      <li><a href="">TS77</a></li>
    </ul>
  </li>
  <li class="level_1"><a href="">Grille Type Rolling</a></li>
  <li class="level_1"><a href="">PVC High Speed Doors</a></li>
  <li class="level_1"><a href="">Swinging doors</a></li>
</ul> 

有人能告诉我如何解决这个问题吗

您可以检查
li
是否有
ul
并像这样禁用
a

$('.level_1:has(ul)>a').removeAttr('href')


您可以如下设置事件侦听器:

将id设置为顶级ul元素:

<ul id="top_level_ul">

备选方案(指针事件)

您还可以设置
指针事件:无
以防止任何交互:

$('#top_level_ul > li > a').each(function() {
   $(this.addClass('noPointer'));
});
CSS

您必须从
$('ul li')

请参见以下示例:


变量$node=$('ul li'); if($node.has('ul').length){ $node.find('ul li>a').removeAttr('href'); }

UPD


将影响子
中的所有
,我现在明白了。。。让我检查一下。在嵌套链接中添加href,您将看到。你的整个方法需要重新思考。
if()
不是筛选特定匹配项的最简单方法。。。remove()是不正确的,尽管“$('.level_2')。同胞('a')…”是获取有问题链接的一种方式。是的…理解,但OP不想删除整个元素,只需禁用itOk$('.level_2')。同级('a')。css('pointer-events','none');
$(document).on('click', '#top_level_ul > li > a', function(e) {
   e.preventDefault();
});
$('#top_level_ul > li > a').each(function() {
   $(this.addClass('noPointer'));
});
.noPointer {
   pointer-events: none;
}
var $node = $('ul li');
if($node.has('ul').length) {
  $node.find('ul li > a').removeAttr('href'); 
}
  $(document).ready(function(){
  $('.level_2').siblings('a').remove();
});
$(document).ready(function(){
  $('.level_2').siblings('a').css('pointer-events','none');
});
$(document).ready(function(){
  $('.level_2').siblings('a').attr('onclick','return false');
});