Javascript 在每一行中添加一个新列,其中包含与第一列值相等的文本?

Javascript 在每一行中添加一个新列,其中包含与第一列值相等的文本?,javascript,jquery,html,greasemonkey,Javascript,Jquery,Html,Greasemonkey,注意:我没有创建这个表,我是一个最终用户,试图让我的生活更轻松 我需要做的是将此表复制到excel,但第一列和第二列是输入框样式 我想在行的末尾创建一个新列,该列的值与第一列的值相同,但为文本,因此我可以在excel中复制和排序 我在Greasemonkey中试过这个,但没有成功: $("tr").append("<td>rows[1].innerHTML</td>") $(“tr”).append(“行[1].innerHTML”) 以下是HTML: <for

注意:我没有创建这个表,我是一个最终用户,试图让我的生活更轻松

我需要做的是将此表复制到excel,但第一列和第二列是输入框样式

我想在行的末尾创建一个新列,该列的值与第一列的值相同,但为文本,因此我可以在excel中复制和排序

我在Greasemonkey中试过这个,但没有成功:

$("tr").append("<td>rows[1].innerHTML</td>")
$(“tr”).append(“行[1].innerHTML”)
以下是HTML:

<form method="post">
<table width="100%" border="1">
    <tbody>
        <tr>
            <td width="30%">Document Name</td>
            <td>File Name</td>
            <td>Last Updated</td>
            <td>Email Target</td>
        </tr>
        <input type="hidden" name="documentId" value="5723">
    </tbody>
    <tbody>
        <tr>
            <td>
                <input type="text" size="30" name="name_5723" value="document1">
            </td>
            <td>
                <input type="text" size="30" name="fileName_5723" value="document1.pdf">
            </td>
            <td>05/26/2015 10:40 AM</td>
            <td>
                <a href="mailto:document+5723@mega.com">document+5723@mega.com</a>
            </td>
        </tr>
        <input type="hidden" name="documentId" value="5722">
    </tbody>

文件名
文件名
最后更新
电子邮件目标
2015年5月26日上午10:40

所需的输出如下所示:

$("tr").append(function(){
  return $("td:eq(0)", this).clone();
});
注意:通过简单地使用
$(“tr”)
作为选择器,可能会将页面上不需要的tr元素作为目标,请确保向表中添加一个ID,如:

<table id="myTable">


并在jQuery中使用它:
$(“#myTable tr”)

关于问题代码的一些注释:

  • 你需要一个更好的选择器<代码>$(“tr”)太宽了,会改变页面上的每个表
  • 您需要考虑标题行
  • 如果页面是AJAX驱动的,则必须使用AJAX感知技术,否则脚本将看不到您关心的表
  • 这就是说,这里有一个完整的Greasemonkey/Tampermonkey脚本,它将在问题中提供的HTML中附加一个文本列:

    /==UserScript==
    //@name\u追加文本列
    //@包括http://YOUR_SERVER.COM/YOUR_PATH/*
    //@需要http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
    //@需要https://gist.github.com/raw/2625891/waitForKeyElements.js
    //@grant GM_addStyle
    //==/UserScript==
    /*-需要@grant指令来解决设计变更
    在GM 1.0中引入。它会恢复沙箱。
    */
    女服务员(
    “表单>表格:包含('Document Name')tr”,appendTextColumn
    );
    函数appendTextColumn(jNode){
    var firstCol=jNode.find(“td:eq(0)”;
    var cellContent=firstCol.find(“输入”).val()| | firstCol.text();
    jNode.append(“”+cellContent+“”);
    }
    


    仅在静态页面上工作的等效代码

    var-targTable=$(“表单>表格:包含('documentname'));
    如果(targetable.length!==1)
    警报('GM脚本错误:应为1个文档表,但找到“+targetTable.length+”!”);
    targetable.find(“tr”).append(函数(idx){
    var firstCol=$(“td:eq(0)”,这是);
    如果(idx==0)
    返回“”+firstCol.text()+“”
    返回“”+firstCol.find(“输入”).val()+“”
    } );
    
    var-targTable=$(“表单>表格:包含('documentname'));
    如果(targetable.length!==1)
    警报('GM脚本错误:应为1个文档表,但找到“+targetTable.length+”!”);
    targetable.find(“tr”).append(函数(idx){
    var firstCol=$(“td:eq(0)”,这是);
    如果(idx==0)
    返回“”+firstCol.text()+“”
    返回“”+firstCol.find(“输入”).val()+“”
    } );
    
    
    文件名
    文件名
    最后更新
    电子邮件目标
    2015年5月26日上午10:40
    
    对不起。我真的不知道正确的语法。我认为行是正确的。我应该使用哪种语法?您的意思是要在每一行中添加一个单元格(右侧),其中包含第一行的确切值
    document blah blah
    ?而且
    input
    不能是表的子元素。。。这是错误的…:(这里是我所说的,所有这些表都在下,所以我认为这就是为什么输入框是OK的原因。我没有创建表。如何使用javascript将表id添加到现有html中?