好的,所以我有一个onclick事件(CF-D07就是一个例子,它们是基于MySQL数据库以编程方式生成的):
<input type="checkbox" onclick="var nameUpdate = 'CF-D07';
datechange();" id="CF-D07">
那么,在datechange()下,我有这个:
function datechange() {
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest(); }
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject
("Microsoft.XMLHTTP");
}
document.body.getElementsByTagName("tr").getElementsById(nameUpdate);
// This section isn't done yet.
// var url = "changedate.psp"
// var params = "user=" + nameUpdate
// xmlhttp.open("GET", url + "?" + params,false);
// xmlhttp.send();
// xmlDoc=xmlhttp.responseXML;
}
这一部分的重要部分是代码:
document.body.getElementsByTagName("tr").getElementsById(nameUpdate);
如何根据onclick事件获取所有带标签的元素,然后将其命名为nameUpdate?之后,如何选择前两个的innerHTML并将其放入单独的变量中?
答案 0 :(得分:1)
如果我理解正确,您在任何页面上都不应该有多个具有相同ID的元素。如果您需要对html元素进行分类,请使用class
属性。
要获取元素的内部html,可以使用DOM元素的恰当名称innerHTML
属性:
function datechange(nameUpdate) {
var xmlhttp;
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
// document.body.getElementsByTagName("tr").getElementsById(nameUpdate);
var trs = document.getElementByClassName(nameUpdate);
for(var i = 0, len = trs.length; i < len; ++i) {
var html = tr.innerHTML;
// Do what you need to with HTML
}
}
使用上面的代码,您的原始HTML代码段可能如下所示:
<input type="checkbox" onclick="datechange('CF-D07')">
这也假设你有tr
某处看起来像这样:
<tr class="CF-D07">
<td>...</td>
<td>...</td>
</tr>
要访问给定<td>
的{{1}}元素,您可以对所有子元素使用<tr>
属性,也可以直接在{{children
使用getElementsByTagName
1}}元素:
tr