从< >获取ID、VALUE或NAME链接到JS

getting the ID or VALUE or NAME from an <a> link with JS

本文关键字:NAME 链接 VALUE JS ID 获取      更新时间:2023-09-26

我试图获得一些链接与js的值,但每次我得到警报:未定义

我已经尝试了很多事情,但没有什么对我有用:(也许你们中的一些人可以帮助我??

代码:

function protected_link() { 
    var pass1 = prompt("Wachtwoord!!!");
    var pass2 = "admin";
    var kerntaak = $(this).attr("id");
if (pass1 === pass2) {
    load('img/pdf/'+kerntaak+'.pdf')
    } else {
        load('index.php')
       }
}

这是我的<a>链接:

<a value="kerntaak1" onclick="protected_link();" class="btn btn-primary btn-lg flex-item page-scroll"" style="letter-spacing: 5px";>kerntaak 1</a>

您正在调用没有上下文的protected_link(this.id);(这将是foo.protected_link或通过.call().apply()提供)。

所以在函数this里面将会是window

毫无疑问,$(window).attr("id")不会给你想要的值。

你正在传递id作为参数:

protected_link(this.id);
               ^^^^^^^

…所以用那个

function protected_link(kerntaak) { 
    alert(kerntaak);

修正。你已经编辑了这个问题。将其作为参数传递。然后你把它删了。恢复删除它。放回去。


如果你正在编写现代JavaScript,你不会使用内在事件属性,你可以这样做:

$("some selector that matches the elements you care about")
    .on("click", protected_link);

(我使用jQuery做事件绑定,因为你已经在使用它)

将在元素的上下文中调用,this将是函数内的元素。

protected_link()中,this不指向调用函数的链接。

但是,如果您更改了这个:

<a value="kerntaak1" onclick="protected_link();" ...

:

<a value="kerntaak1" onclick="protected_link.call(this);" ...

this将指向你希望它指向的<a>标签。

了解javascript中function.call()的更多内容。

附言:昆汀解释得很好。