获取<a> tag</a>的id元素

时间:2012-02-20 03:53:33

标签: javascript

我正在解析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()。我不确定哪种方法更好。我尝试做一个简单的警报(参数[0]),看看在这种情况下传递了什么,我得到了未定义。因为我刚刚学习Javascript,所以我有点失去了该怎么做。感谢。

1 个答案:

答案 0 :(得分:2)

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

"<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>";

您没有将{{1>}中的连接到您正在生成的字符串中,而是包含字符串“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属性,链接是锚元素(或者“a”元素),并且在html标记中,锚元素使用id 标记定义。 (同样,“href”是属性。)

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

this

或者,在您的代码中:

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