我正在解析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,所以我有点失去了该怎么做。感谢。
答案 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;">