jquery获取href的目标值

时间:2011-06-07 10:16:37

标签: jquery

使用jquery如何找出href链接的目标值。例如如果我的链接是

<a href="someurl.com" id="the_link" target="_blank">link</a>

目标是_blank

6 个答案:

答案 0 :(得分:9)

使用attr()

$('#the_link').attr('target');

Example on jsfiddle

答案 1 :(得分:5)

我将与众不同,通过直接对元素属性进行操作来教你部分香草js:

$('#the_link')[0].target;

如果您使用 jQuery&gt; = 1.6 ,那么您应该使用.prop而不是.attr

$('#the_link').prop('target');

答案 2 :(得分:1)

使用attr()

alert($('#the_link').attr('target'));

答案 3 :(得分:1)

简单地

$('#the_link').attr('target');

答案 4 :(得分:0)

$('a').attr('target')

应该这样做

jQuery .attr Documentation

答案 5 :(得分:0)

虽然接受的答案对于OP示例中显示的特定情况是正确的,但在现实世界的情况下,链接的有效目标完全有可能赢得&#39; t被定义为其锚元素的属性。

例如,请考虑以下基本HTML页面:

<!doctype html>
<html lang=en>
  <head>
    <meta charset="utf-8">
    <title>Example</title>
    <base target="_blank">
  </head>
  <body>
    <a href="someurl.com" id="the_link">link</a>
  </body>
</html>

由于<base target="_blank">中的<head>元素,该链接的目标为_blank,但是:

$('#the_link').attr('target');

将返回undefined,因为该链接没有target属性。

更有效的方法可能是:

function getTarget($link) {
  var linkTarget = $link.attr('target'),
      baseTarget = $('base').attr('target');
  if (typeof linkTarget !== 'undefined') {
    return linkTarget;
  } else if (typeof baseTarget !== 'undefined') {
    return baseTarget;
  }
}       

console.log(getTarget($('#the_link'));

如果已定义,将返回链接的目标,否则返回基本目标(如果已定义),否则为undefined