Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.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 jQuery attr(“href”)不';行不通_Javascript_Jquery - Fatal编程技术网

Javascript jQuery attr(“href”)不';行不通

Javascript jQuery attr(“href”)不';行不通,javascript,jquery,Javascript,Jquery,我正在建立一个wordpress主题。在文章的底部,我插入了一个自定义导航栏,在这里我可以显示标签和分页链接。(所有wordpress元素都工作正常:wordpress不是让我来到这里的问题) 我希望在单击页码链接时使用javascript方法.load()刷新帖子内容(基本上我希望在帖子页面中导航,而无需每次重新加载所有内容) 为此,我需要检索要加载的链接的href属性。在阅读官方API并在几个论坛上搜索之后,我试图通过这段代码实现这一点。。。但它不起作用,我也不明白为什么 HTML <

我正在建立一个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>

当我进入“我的第一页”时,此代码在控制台上显示“未定义”。有线索吗?谢谢

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

你可能想说

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

如果您想点击
锚定
并获取他们的
HREF
,请使用此选项

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

这是因为您正在使用
$('.page number.tags and navigation elem')
选择一个div,该div没有
href
属性

你可能想说

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

如果您想点击
锚定
并获取他们的
HREF
,请使用此选项

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

jquery选择器选择的是div元素,而不是a标记。因此$(this)将是div元素

而是将选择器更改为:

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

然后它会工作:)

您的jquery选择器选择的是div元素,而不是a标记。因此$(this)将是div元素

而是将选择器更改为:

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

然后它将工作:)

显然,您引用的元素不是
锚定标记

您的代码:

$(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'));
    });
});

显然,您引用的元素不是
锚定
标记

您的代码:

$(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'));
    });
});


$(此)
在代码中指的是封闭的div(没有href)。将JS DOM选择器更改为
$('.tags and navigation elem>a')
并查看它是否有效。
$(此)
在代码中指的是封闭的div(没有href)。将JS DOM选择器更改为
$('.tags and navigation elem>a')
然后看看它是否有效。是的,但这也意味着在锚点外但在div内的单击将不再有效。@t.J Crowder,是的,这是正确的,但从我所说的他试图做什么,然后他试图输出单个元素的href,而不是allinded,因为OP在div中有多个锚点,他们希望在每个锚点的基础上,而不是在每个div的基础上进行此操作。是的,但这也意味着在锚点外但在div内的单击将不再起作用。@t.J Crowder,是的,这是正确的,但从我所说的他试图做什么,然后他试图输出单个元素的href,而不是allinded,由于OP在div中有多个锚点,他们希望在每个锚点的基础上执行此操作,而不是在每个div的基础上。然后它将控制台记录该div中所有a元素的所有href。不确定他想要什么。但只是为了你know@MikkelDamm:不,它只显示第一个。jQuery的getter/setter函数(如
attr
prop
val
,等等)是不对称的:当你设置时,它们设置在集合中的所有元素上,但当你获取时,它们只从第一个元素获取。@T.J.Crowder,你的权利-抱歉-但我假设当他的示例显示多个a标记时,这不是他想要的。因此,我不认为这个解决方案“$(this).find('a').attr('href')”会对他有很大帮助。@MikkelDamm我刚刚给出了一个想法,我想到了他可能想要的两种可能性,我在我的答案中添加了这两种,如果你能看到公认的答案,这与我回答的第二部分相同。@Mritunjay在你添加第二个解决方案之前我添加了我的评论-因此我的评论-但我同意你的看法:)然后它将控制台记录该div中所有a元素的所有href。不确定他想要什么。但只是为了你know@MikkelDamm:不,它只显示第一个。jQuery的getter/setter函数(如
attr
prop
val
,等等)是不对称的:当你设置时,它们设置在集合中的所有元素上,但当你获取时,它们只从第一个元素获取。@T.J.Crowder,你的权利-抱歉-但我假设当他的示例显示多个a标记时,这不是他想要的。因此,我不认为这个解决方案“$(this).find('a').attr('href')”会对他有很大帮助。@MikkelDamm我刚刚给出了一个想法,我想到了他可能想要的两种可能性,我在我的答案中添加了这两种,如果你能看到公认的答案,这与我回答的第二部分相同。@Itunjay先生,在您添加第二个解决方案之前,我添加了我的评论-因此我的评论-但我同意您的看法:)