我有一个链接
<ul class="sub_menu">
<li><a href="caps">Caps</a></li>
<li><a href="jeans">Jeans</a></li>
<li><a href="shorts">Shorts</a></li>
<li><a href="foootwear">Footwear</a></li>
</ul>
我想获取href
值,我尝试了以下代码:
$(document).ready(function() {
$('ul.sub_menu a').click(function() {
var txt = $(this).attr('href');
alert(txt);
)};
)};
但我收到此错误
The requested URL /new/caps was not found on this server.
我不想抓取文字,我使用.text();
成功了,我想要href
值。
答案 0 :(得分:4)
将return false
添加到click
事件处理程序的末尾以停止执行链接。
$(document).ready(function() {
$('ul.sub_menu a').click(function() {
var txt = $(this).attr('href');
alert(txt);
return false;
)};
)};
如果您希望事件仍在DOM上传播,您也可以使用event.preventDefault()
:
$(document).ready(function() {
$('ul.sub_menu a').click(function(event) {
var txt = $(this).attr('href');
alert(txt);
event.preventDefault();
)};
)};
注意:在jQuery事件处理程序中,return false;
与调用event.preventDefault().stopPropagation();
相同。
答案 1 :(得分:0)
您需要执行以下操作:
$(document).ready(function() {
$('ul.sub_menu a').click(function(e) {
e.preventDefault();
var txt = $(this).attr('href');
alert(txt);
)};
)};
注意:e.preventDefault();
这会阻止您单击时的默认链接行为(导航到)。
答案 2 :(得分:0)
试试这个
$(document).ready(function() {
$('ul.sub_menu a').click(function() {
var txt = $(this).attr('href');
alert(txt);
return false;
)};
)};
答案 3 :(得分:0)
看起来有两个问题:
您需要使用event.preventDefault();
或return false
来停止点击 AND
您需要修复代码中的)
。现在它们不合适。在这两种情况下,您都有)};
。应为});
代码应
$('ul.sub_menu li a').click(function() {
event.preventDefault();
var txt = $(this).attr('href');
alert(txt);
}); <-- here is where the parantheses are wrong.