我是javascript中的新手。我正在尝试以下代码来获取href属性。
<a href="facebook.com" onclick="cheak()">Facebook</a>
<script type="text/javascript">
function cheak()
{
var a= document.getElementsByTagName("a").getAttribute('href');
alert(a);
}
</script>
我知道这是通过下面的代码
工作的document.getElementById("myid").getAttribute('href'); // if I use any id
但是在标签中我不想使用任何id或类。如何在不使用a
标记中的任何ID或类的情况下获取此属性。
答案 0 :(得分:2)
如果在调用该函数时传入this
。它会将元素引用传递给您的函数,您可以使用它来获取href:
<a href="facebook.com" onclick="cheak(this)">Facebook</a>
<!-- Note -----------------------------^^^^ -->
<script type="text/javascript">
function cheak(a) {
alert(a.href); // Gives you the fully-resolved URL
alert(a.getAttribute("href")); // Gives you the content of the `href` attribute (not fully-resolved)
}
</script>
参数data
是名为
答案 1 :(得分:2)
前言:下面,在一般情况下,我已经回答了如何在不使用id
或class
的情况下查找元素的问题。但是,如果您只想在cheak
函数中使用该元素,则Zain's answer是正确的方法(对代码进行最少的更改;可以说 more 正确可能是现代事件连接)。
但是在标签中我不想使用任何id或类。如何在不使用
id
标记中的任何class
或a
的情况下获取此属性。
你选择了元素选择的瑞士军刀:document.querySelector
。有了它,您可以使用与元素匹配的任何CSS selector:
var href = document.querySelector("any selector here").getAttribute("href");
querySelector
会在文档中返回第一个匹配。 (还有querySelectorAll
,它会返回一个列表。)所有现代浏览器和IE8都支持它们。
由于您拥有CSS选择器的全部功能,因此您可以使用有关文档中元素位置的任何内容来查找它。
对于特定示例,您的问题中的上下文太少,但例如,如果它是文档中的第一个 a
:
var href = document.querySelector("a").getAttribute("href");
alert(href);
&#13;
<a href="facebook.com" onclick="cheak()">Facebook</a>
&#13;
或使用onclick
:
var href = document.querySelector("a[onclick='cheak()']").getAttribute("href");
alert(href);
&#13;
<a href="facebook.com" onclick="cheak()">Facebook</a>
&#13;
答案 2 :(得分:0)
<a href="www.facebook.com" onclick="cheak(event)">Facebook</a>
<script type="text/javascript">
function cheak(e)
{
e.preventDefault();
// var a= document.getElementsByTagName("a").getAttribute('href');
alert(e.target);
}
</script>