获取<a>标签

Get id element of an <a> tag

本文关键字:标签 gt 获取 lt      更新时间:2023-09-26

我正在解析XML并将其放入一个简单的表中,如下所示:

function showData(message) {
    var str = "<table border=1 class='editable'>";
    for (var i = 0; i < message.length; i++) {
        str += "<tr>" + "<td>" + message[i].id + "</td>" +
                       "<td>" + message[i].name + "</td>" +
                       "<td>" + message[i].url + "</td>" +
                       "<td>" + message[i].desc + "</td>" + 
                       "<td>" + "<a href='javascript:deleteRequest();' id=message[i].id>delete</a>" + "</td>" + "</tr>";
    }
    str += "</table>";
    return str;
}

我在表的最后一列中有一个标记,我正在尝试设置标记的id,或者能够从deleteRequest方法中获取它,以便删除表中的该条目。

1) 我不确定我是否为标签正确设置了id。

2) 我不知道如何在deleteRequest方法中获得所选标记的id,就像iOS中的发送方一样,或者将id作为参数传递给deleteRequest()。我不确定哪种方法更好。我试着做一个简单的警报(arguments[0]),看看在这种情况下传递了什么,但我没有定义。所以我有点不知所措,因为我只是在学习Javascript。谢谢

对包含链接的行尝试这样的操作:

"<td>" + "<a href='javascript:deleteRequest(this);' id='" + message[i].id + "'>delete</a>" + "</td>" + "</tr>";
// OR, without the extra + operations:
"<td><a href='javascript:deleteRequest(this);' id='" + message[i].id + "'>delete</a></td></tr>";

您没有将message[i].id中的连接到您正在生成的字符串中,而是包含了字符串"message[i].id"。(请注意,这一行最终看起来与之前的四行代码相似。)

如果您将this作为参数传递给您的函数,就像上面显示的deleteRequest(this)一样,您可以执行以下操作:

function deleteRequest(el) {
   // el is the <a> that was clicked
   alert(el.id);    // displays the id from the row that was clicked
}

(显然,alert(el.id)只是如何访问id属性的一个示例,此时您可以对它执行任何操作。)

关于术语的注意事项:您的问题标题是"获取标签的id元素"-id属性,链接是锚元素(或"a"元件),在html标记中,锚元素是用<a>标签定义的。(类似地,"href"是属性。)

编辑:我刚刚注意到您的JS嵌入在href属性中。我不确定这是否适用于this关键字,但无论如何,更好的方法是:

<a href="#" onclick="deleteRequest(this); return false;">

或者,在您的代码中:

"<td><a href='#' onclick='javascript:deleteRequest(this);return false;' id='" + message[i].id + "'>delete</a></td></tr>";