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