检测具有 href 属性的“A”标记,该属性等于当前页面的 URL
detect an 'a' tag with href attribute that equals the url of the current page
我的任务包含几个步骤:
- 隐藏页面中的所有链接
- 检测具有等于当前页面 URL 的 href 属性的链接元素
- 显示此元素邻居
我正在使用的html是这样的:
<div class="alllinkswrap">
<a class="allproductsurls" href="blabla1.com">1</a>
<a class="allproductsurls" href="blabla2.com">2</a>
<a class="allproductsurls" href="blabla3.com">3</a>
<a class="allproductsurls" href="blabla4.com">4</a>
<a class="allproductsurls" href="blabla5.com">5</a>
</div>
我试图用display: none
隐藏所有链接元素,我只想显示当前链接顶部和底部的 2 个链接。我使用的jQuery代码:
$(docment).ready(function(){
var thispageurl = window.location.href;
$(".alllinkswrap").children().each(function(){
if (this.href.indexOf(thispageurl))
{
$(this).next().show();
$(this).prev().show();
}
});
});
我猜错误出在$(this).next
的某个地方等等。但对jQuery来说仍然是新的。你能发现问题吗?
原始
你的 indexOf(...) 需要检查不是 -1,当in this.href
找不到 thispageurl
时,它将返回 -1。或者您可以检查它是否等于 0,因为当找到目标链接时,应该在索引 0 处找到它。
更新
如果你确实想检查当前 URL 和目标 href 的相等性,我们需要使用 Javascript 中的==
或===
比较。这是因为当页面位于子会话中或您在域中时,我们会遇到问题。例如:
如果 thispageurl
= http://url.com
且 this.href
= http://url.com/page1.html
则使用 this.href.indexOf(thispageurl)
将返回 0,但这不正确。如果我们在这种情况下反转 for thispageurl.indexOf(this.href)
的索引,.indexOf()
返回 -1。同样,如果我们分别将thispageurl
和this.href
翻转到http://url.com/page1.html
和http://url.com
,则会遇到类似的情况,具体取决于我们获取索引的内容。
所以我更新了以下代码以检查字符串值的相等性。
var thispageurl = window.location.href;
$(".alllinkswrap").children().each(function(){$(this).hide()})
$(".alllinkswrap").children().each(function(){
if (this.href === thispageurl)
{
$(this).next().show();
$(this).prev().show();
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="alllinkswrap">
<a class="allproductsurls" href="blabla1.com">1</a>
<a class="allproductsurls" href="blabla2.com">2</a>
<a class="allproductsurls" href="http://stacksnippets.net/js">3</a>
<a class="allproductsurls" href="blabla4.com">4</a>
<a class="allproductsurls" href="blabla5.com">5</a>
</div>
相关文章:
- 如何使用javascript/jquery获取iframe的URL的锚点属性
- 未捕获的InvalidValueError:setIcon:不是字符串;并且没有url属性;并且没有路径属性
- 更改跳转到URL操作SSRS 2008 R2的链接目标属性(rc:LinkTarget)
- 为什么html src属性中的相对url是因为Javascript函数中的完整路径
- 如何创建一个组件,我可以设置在 Angular 2 中的属性中获取 URL 数据
- 如何在 jQuery 中将 HTML 标记的 HREF URL 替换为不完整的属性
- SEO机器人是否总是遵循A标签的href属性中的URL,即使点击/点击被Javascript拦截
- img src 属性在为空时返回页面的 URL
- TypeError:无法读取属性'url'的未定义
- 将Firebase url存储在外部属性文件中
- 为什么当我尝试为iframe-src属性构建URL时,AngularJS会抛出错误
- 将锚点更改为指向页面的数据url属性
- 如何为url属性中的空间设置%20
- 使用TranstionToRoute中的url将属性传递到Ember中的新路由
- Fabric js从url加载svg缺少属性
- Javascript数据将元素属性绑定到URL中的锚href
- ReactJS在使用'url'属性
- 追加并替换data-*属性URL的查询字符串值
- ASP.NET Javascript 揭示模块中的 RootPath 属性 @Url.Content(“~/”)
- 未捕获的类型错误:无法读取未定义的属性“url” - Google Image API