【问题标题】:Changing td text without affecting two hidden field inside the td更改 td 文本而不影响 td 内的两个隐藏字段
【发布时间】:2012-12-11 16:44:55
【问题描述】:

我有一个HTML table
它有一些td
每个 td 都有一些文本和两个 hidden field
我的表格 td 文本有一个 json source
我想在不更改两个隐藏字段的情况下更改表格的所有 td 的文本。
之前我使用的是 jTemplate 和 json。
但是我带来了每个 td 的 Jason 中的隐藏字段值与原始值没有什么不同。
所以我决定改变我的方法,只带来需要替换的文本。
我知道如何使用text()html() 方法在jQuery 中更改td 的文本。
但是它会在不影响 td 内的控件(隐藏字段)的情况下更改文本吗?

---编辑---
我的一个 td 就像

 <table id='demoTable'>
 <tr>
 <td>8: Tap on APN and Enter <B>www</B>.
     <INPUT id=h150000000000000109743 class=hid value="test value" type=hidden>
     <INPUT id=h250000000000000109743 class=hid1 value="26,222,98,10,50000000000000109744,T,~25,221,99,10,,T,www" type="hidden">
 </td>
 </tr>
 </table>

而我的jquery是这样的

 function changeText() {
        $("#demoTable td").each(function () {
            for (var i = 0; i < $(this).children.length; i++) {
                alert($(this).children(i).val());
            }
            //                alert($(this).html());
            //                $(this).text("hello");
            //alert($(this).html());
        });
    }

【问题讨论】:

    标签: jquery json


    【解决方案1】:

    你可以这样做

    如果您有第一个孩子作为文本内容,请获取您的 table td 并像这样更改第一个孩子内容

    var text_to_chang = document.getElementById("td").childNodes[0];
    text_to_change.nodeValue = 'new text';
    

    【讨论】:

    • 在里面创建一个childNodes。如果是,那么我的 td 中会有三个 childNodes 吗?
    • 发出警报并测试诸如 alert(td.childNodes.length) 之类的子节点并告诉我您有多少子节点
    • 我的 td 文本中的空格会创建一个 childNode 吗?请看这个链接stackoverflow.com/questions/12635751/…
    • td 中的文本被视为文本节点
    【解决方案2】:

    将文本放在label 中,然后在标签上使用text() 而不是td 例如:

    <td>
       <label id="lblName">krshekrar</label>
       <input type="hidden" value="1" id="UserID"/>
    </td>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-27
      • 2015-04-10
      • 2012-07-26
      • 2012-04-22
      • 2012-09-01
      相关资源
      最近更新 更多