Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.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 onClick事件转到子元素的href_Javascript_Jquery_Onclick_Location Href - Fatal编程技术网

使用Javascript onClick事件转到子元素的href

使用Javascript onClick事件转到子元素的href,javascript,jquery,onclick,location-href,Javascript,Jquery,Onclick,Location Href,由于一些奇怪之处,我一直坚持使用javascript到Jquery,通过单击父li元素来获得链接。基本上,单击li上的任何位置都会将用户带到a的链接,该链接是它的直接子链接。我的一些想法似乎不起作用。守则: <ul> <li onclick="location.href='$(this).children('a:first').attr('href')';"> <a href="http://example.com/">link</a>

由于一些奇怪之处,我一直坚持使用javascript到Jquery,通过单击父li元素来获得链接。基本上,单击li上的任何位置都会将用户带到a的链接,该链接是它的直接子链接。我的一些想法似乎不起作用。守则:

<ul>
<li onclick="location.href='$(this).children('a:first').attr('href')';">
    <a href="http://example.com/">link</a>
    </li>
    </ul> 

谢谢大家!

在href周围加单引号时,它被视为一个字符串。另外,您在其他单引号中使用了单引号,这会过早地结束字符串。它确实试图转到url“$(this.children”(“)

而是删除location.href周围的单引号

<ul>
    <li onclick="location.href=$(this).children('a:first').attr('href');">
        <a href="http://example.com/">link</a>
    </li>
</ul> 
另外,您真的不应该使用这样的内联脚本。最好在页面底部添加一个脚本标记,并在其中放置一个绑定到li的单击事件的脚本。

替换为此

    <li onclick="location.href=$(this).children('a:first').attr('href');">

  • 您可以简化代码,方法是不使用onclick移动,而是使用选择器以该节点为目标并在该节点上单击事件

    $(".myUl li").on("click", function() {
        location.href = $(this).children("a").attr("href");
    });
    

    但是你真的应该使用css来解决这个问题。你也可以在
    上使用
    display:block;
    ,并让它填充内容,添加额外的填充,基本上像一个div,但保持链接功能。

    是的,我知道这应该是一个css解决方案,但实际的页面有一些php,不知何故是重新定义的由于链接无法正常工作,所以我无法破译它,所以我尝试使用JS。