选择内部的两个内部HTML

时间:2011-11-10 16:46:33

标签: javascript html

好的,所以我有一个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并将其放入单独的变量中?

1 个答案:

答案 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