【问题标题】:How to select element by the last part of an attribute如何通过属性的最后一部分选择元素
【发布时间】:2016-04-29 16:46:32
【问题描述】:

我只想为<a> 元素添加target="_blank",其中href 的最后一部分是page2.aspx。我如何使用 jQuery 做到这一点?我试过这个:

$j("a[href='page2.aspx']").attr('target', '_blank'); // not sure if it works?
<a href="/en-gb/mypage/Pages/page1.aspx">My Site</a>
<a href="/en-gb/mypage/Pages/page2.aspx">My Site</a>
<a href="/en-gb/mypage/Pages/page3.aspx">My Site</a>
<a href="/en-gb/mypage/Pages/page4.aspx">My Site</a>

我无法像下面那样访问&lt;a&gt;,因为每次页面呈现时都会发生变化(语言)。

$j("a[href='/en-gb/mypage/Pages/page2.aspx']").attr('target', '_blank');

我该如何解决这个问题?

【问题讨论】:

  • 试试$=,它至少在 CSS 中是这样工作的。或者只是将类名添加到特定的 &lt;a&gt; 标记?
  • 由于某些原因,我无法将类名添加到该特定 url,因为所有这些 html 都是由自定义服务器端代码生成的。

标签: jquery attributes anchor href


【解决方案1】:

您可以使用Attribute ends with 选择器:

$j("a[href$='page2.aspx']").prop('target', '_blank');

$("a[href$='page2.aspx']").prop('target', '_blank');

// here's something that makes a visible difference so you 
// can see the element is targeted properly
$("a[href$='page2.aspx']").css('color', '#C00');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="/en-gb/mypage/Pages/page1.aspx">My Site</a>
<a href="/en-gb/mypage/Pages/page2.aspx">My Site</a>
<a href="/en-gb/mypage/Pages/page3.aspx">My Site</a>
<a href="/en-gb/mypage/Pages/page4.aspx">My Site</a>

【讨论】:

  • 对不起,我没有看到任何以选择器结尾的例子,你能写任何例子来演示吗?
  • 我不确定您的意思,我在问题中添加了指向文档的链接:api.jquery.com/attribute-ends-with-selector
  • 我还添加了一个 sn-p 以便您查看一个工作示例
  • 我的意思是 ($=) 结尾在我的情况下不适用于 .prop 属性,但适用于 .attr() 属性。
  • 您使用的是旧版本的 jQuery 吗? prop() 是在 1.7 中添加的。如果是这种情况,你真的应该,真的更新你的 jQuery 版本。
猜你喜欢
  • 2019-07-20
  • 1970-01-01
  • 2019-09-30
  • 2016-07-24
  • 2018-02-21
  • 1970-01-01
  • 2021-09-30
  • 2010-11-02
相关资源
最近更新 更多