Javascript jQuery attr(“href”)不';行不通
我正在建立一个wordpress主题。在文章的底部,我插入了一个自定义导航栏,在这里我可以显示标签和分页链接。(所有wordpress元素都工作正常:wordpress不是让我来到这里的问题) 我希望在单击页码链接时使用javascript方法.load()刷新帖子内容(基本上我希望在帖子页面中导航,而无需每次重新加载所有内容) 为此,我需要检索要加载的链接的href属性。在阅读官方API并在几个论坛上搜索之后,我试图通过这段代码实现这一点。。。但它不起作用,我也不明白为什么 HTMLJavascript jQuery attr(“href”)不';行不通,javascript,jquery,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>
当我进入“我的第一页”时,此代码在控制台上显示“未定义”。有线索吗?谢谢这是因为您正在使用
$('.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先生,在您添加第二个解决方案之前,我添加了我的评论-因此我的评论-但我同意您的看法:)