使用Javascript访问/更改表中的信息

使用Javascript访问/更改表中的信息,javascript,greasemonkey,Javascript,Greasemonkey,我正在使用greasemonkey更改现有网页的功能。。如果你不熟悉greamonkey,那也没关系。。主要信息是现有页面的当前代码如下所示: <div id="sqlDiv" class="sqlBorderDiv" style="display: none;"> <div class="reportBorderDiv"> <table class="reportTable"> <tbody> &l

我正在使用greasemonkey更改现有网页的功能。。如果你不熟悉greamonkey,那也没关系。。主要信息是现有页面的当前代码如下所示:

<div id="sqlDiv" class="sqlBorderDiv" style="display: none;">
<div class="reportBorderDiv">
    <table class="reportTable">
        <tbody>
            <tr>
            <tr class="reportRow1">
            <tr class="reportRow2">
                <td>55555</td>
                <td>Bruce Wayne</td>
                <td>12456789123</td>
                <td>2013-12-17</td>
                <td>Batman</td>
                <td>Superhero</td>
                <td>Menace</td>
                <td>123246</td>
                <td>12456</td>
                <td>123456</td>
                <td></td>
            </tr>
        </tbody>
    </table>
</div>
我想在其上运行一个脚本,该脚本将使用任何reportRow的第一个单元格中的信息使其成为超链接。我正在尝试下面这样的脚本,但出现了一些问题,我不知道是什么。我对javascript非常陌生。谢谢你的建议

var anchor = null;
var container;
var rows;
var cells;
var demoNum;
var linkString = "https://somewebsite.com/";

container = document.getElementById('sq1Div');

rows = container.getElementsByTagName("tr"); 

for (var i = 0; i < rows.length; i++) { 
    var className = rows[i].getAttribute("class"); 
    if ( className == "reportRow1" || className == "reportRow2" ) { 
        anchor = rows[i];
        cells = anchor.getElementsByTagName("td");
        demoNum = cells[0];
        linkString = linkString + demoNum;
        cells[0] = <a href = linkString > demoNum </a>;    
    }
}

问题就在眼前

单元格[0]=

应该是一个字符串,如下所示:

单元格[0]=

要将其放回表的第一行,可以这样做

row[i].childNodes[0].innerHTML=cells[0];

此外,还有document.getElementByIdsq1div,而不是sqlDiv

document.getElementById'sq*1*Div'

不正确的索引,您使用的是数字1而不是字母l


当然,正如所写的带有新链接的scrblnrd3行构建不正确的

在我看来,HTML有不匹配的标记,这会不会混淆greasemonkey?

您检查过错误控制台吗?它会显示什么错误消息?如何找到错误控制台?您使用的浏览器是什么?打开“工具”>“Web开发人员”>“浏览器控制台”。因此不会显示任何错误即使进行了这些更改,页面上显示的表也不会有任何更改。为了澄清,为什么它必须是一个字符串?否则它将处理oh,这是有意义的所以我做了这两个改变,但仍然不起作用。我也尝试过更改脚本,因此demoNum只更改为000,这也不起作用。第一段代码只是firebug块的一小部分,与我正在处理的部分相关。。它实际上是一个巨大的表,有很多行,所以我只是扩展了其中一行来显示格式。