2014-09-26 68 views
2

由於一些奇怪我堅持使用JavaScript到Jquery通過單擊父li元素來獲得工作鏈接。基本上點擊li上的任何地方應該將用戶帶到a的鏈接,該鏈接是它的直接子節點。我有些東西似乎並不奏效。代碼:使用Javascript的onClick事件去href的一個子元素

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

謝謝!

回答

4

當你把單引號放在href的時候,它被看作是一個字符串。另外,您在其他單引號內使用了單引號,這會過早結束字符串。它的字面嘗試訪問的URL「$(本)。兒童(」

相反,去掉單引號括起來放在location.href

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

而且,你真的不應該使用內嵌腳本這樣的。這是更好的腳本標籤添加到頁面的底部,把一個腳本在那裏,結合李的Click事件。

+0

謝謝,這工作! – Epleroma 2014-09-26 19:42:34

1

與此

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

你完全可以簡化您更換r代碼通過移動不使用onclick,而是使用選擇器來定位該節點並在那裏有一個點擊事件。

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

但你真的應該通過使用CSS來解決這個問題。您也可以在<a>上使用display: block;,並且可以填充內容,添加額外的填充並基本表現爲div,但保持鏈接功能。

+0

是的,我知道這應該是一個CSS解決方案,但實際的頁面有一些PHP,以某種方式限制鏈接從正常工作,所以我無法破譯它,我試圖用JS代替。 – Epleroma 2014-09-26 19:44:09

相關問題