如何替换未标记的元素的文本

时间:2016-08-05 19:23:04

标签: javascript jquery

我有这个HTML。

<td>
    Line 1
    <div id="foobar">Foobar</div>
</td>

如何在不替换/覆盖#foobar元素的情况下将第1行更改为第2行?

4 个答案:

答案 0 :(得分:2)

var abcd= document.getElementsByTagName('td');
var newabcd = abcd.childNodes[0];
newText.nodeValue = 'Line 2 ';


<td>
      Line 1
      <div id="foobar">Foobar</div>
    </td>

答案 1 :(得分:1)

您可以使用jQuery detach() 方法执行此操作。

&#13;
&#13;
var div = $('#foobar').detach();
$('td').html(div).prepend('Line 2');
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
    <tr>
        <td>
            Line 1
            <div id="foobar">Foobar</div>
        </td>
    </tr>
</table>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

我认为您无法直接编辑<td></td>标记的内容。两种解决方案:

1使用<span></span><p></p>标记将第1行打包以识别它 2提取<td></td>的全部内容,并使用正则表达式从中提取div并将其与新文本合并。

答案 3 :(得分:0)

首先提取标签 <span> 的内容然后你可以重写 <span> 的父标签并附加第一个值,如果你想从按钮触发这个简单的添加{{1你的按钮或链接

onclick="replace_content()"

&#13;
&#13;
function replace_content(){
    var foo=$("#foobar").html();
    $("#foobar").parent().html("Line 2"+foo);
}
&#13;
    function replace_content(){
        var foo=$("#foobar").html();
        $("#foobar").parent().html("Line 2 "+foo);
    }
&#13;
&#13;
&#13;