jQuery attr(“href”)不起作用

时间:2014-08-17 09:39:09

标签: javascript jquery

我正在构建一个wordpress主题。在帖子的底部,我插入了一个自定义导航栏,我在其中显示标签和分页链接。 (所有wordpress元素都运行良好:wordpress不是带给我的问题)

我想在点击页码链接时使用javascript方法.load()刷新帖子内容(基本上我想浏览帖子的页面,而不是每次都重新加载所有内容)

要做到这一点,我需要检索我想要加载的链接的href属性。在阅读官方API并在几个论坛上搜索后,我试图通过此代码实现这一目标......但它不起作用,我无法理解。

HTML

<nav id="tag-and-navigation">
    <div class="page-numbers tags-and-navigation-elem">
        <a href="my_first_page">1</a>
        <a href="my_second_page">2</a>
    </div>
</nav>

jQuery(调试模式版本:我只是尝试在控制台中显示href)

$(document).ready(function(){
    $('.page-numbers.tags-and-navigation-elem').click(function(){
       console.log($(this).attr('href'));
    });
});

此代码显示&#34; undefined&#34;在控制台上,当我参加&#34; my_first_page&#34;。任何线索?感谢

3 个答案:

答案 0 :(得分:4)

这是因为您使用$('.page-numbers.tags-and-navigation-elem')选择了一个div,它没有href属性。

你可能想说

console.log($(this).find('a').attr('href'));

OR

如果您想点击anchors并让hrefs使用此

$(document).ready(function(){
    $('.page-numbers.tags-and-navigation-elem a').click(function(){
       console.log($(this).attr('href'));
    });
});

答案 1 :(得分:2)

你的jquery选择器选择div元素而不是a标签。因此$(this)将成为div元素。

而是将选择器更改为:

$('.page-numbers.tags-and-navigation-elem a')

然后它会起作用:)

答案 2 :(得分:0)

显然,您引用的元素不是anchor标记。

您的代码:

$(document).ready(function(){
    $('.page-numbers.tags-and-navigation-elem').click(function(){
       console.log($(this).attr('href'));
    });
});

你可以说:

$(document).ready(function(){
    $('.page-numbers.tags-and-navigation-elem a').click(function(){
       console.log($(this).attr('href'));
    });
});