jquery或js修改或替换html中的文字

html内容如下

<label>
    测试文字1
    <select>
        <option>10</option>
    </select>
    测试文字2
</label>

目标:仅替换测试1测试2文字
尝试手段:因为该段代码是js插件自动生成,无法给文字加标签,关于使用$('label') = ‘<label>...’,或对textContent,innerHtml,text的任何全部替换和修改都会导致功能丢失(分析原因可能为如整体替换,内存中值也会改变才导致功能丢失)
请教如何再保留外部label和内部select,只替换文字部分。

阅读 13.4k
3 个回答
//遍历label的子节点
for(var i=0;i<label.childNodes.length;i++){
    //筛选文本节点
    if(label.childNodes[i].nodeType==3){
        //修改文本节点的内容
        //do something
    }
}

我跟楼上的思路差不多,不过这样也会对一些空白的文本节点生效吧?
label js对象.childNodes[0]和.childNodes[nodes.length]可能有针对性一点?

貌似看错了,这里的情况并没有空白的文本节点。

//先获取select
var $select = $("label").find("select");
//清空,填充新的内容
$("label").empty().append("文字1").append($select).append("文字2");
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏