如何将div标签下所有标签内的Col2 批量替换掉?如下例子:
现如今使用这个语句会把div下包括其他标签全部给替换掉 ,现想保留,大佬们有没有好的方法?
this.wrap.select('td.grid-hc[dataindex=col2] div').update(prompt);
通过JQ获取元素的html,再通过replace全部替换掉字符串里的Col2,最后再使用html重新赋值试试~
//获取html
var html=$("选择器").html()
//replace替换html里的字符,注意使用/g批量替换
//设置html
$("选择器").html(替换后的html)
还有/i不区分大小写
正则/col2/ig
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<div>
<span class="prompt-required result_ds" title="col2">*</span>
"Col2"
</div>
<script type="text/javascript">
var divs = document.getElementsByTagName("div");//获取所有div的元素
var prompt = "abc";//需要替换的内容
for (var i = 0; i < divs.length; i++) {
divs[i].innerHTML = divs[i].innerHTML.replace("col2", prompt).replace("Col2", prompt);
}
</script>
</body>
</html>
这个获取的元素太多了,替换了全局内其他部分的数据, ,需要按原本的那样更精确一些,没有固定id,如图可以使用dataindex="col2",不知道能不能实现。反正就是div 里面 的描述给替换成想要的文字,但是有的时候div里面会多两个span标签,按我自己的原本方法会把span标签的样式也替换没,不满足需求
@当个胖子: 现在的问题是:1.获取到的div元素太多,2.不在div元素里的不被替换对吗
@lf03: 对 这里展示的只是页面的冰山一角,最好能精确定位到当前div 把里面所有的col2 都替换了
@当个胖子: 元素属性值为col2的元素属性名称都有哪些比如dateindex属性的值有可能是col2 不然很难做到精确定位
@lf03: 可以这么理解 同一个表格 table 里面 dataindex=col2 是唯一的 ,就比如我提供的语句 这样就能找到那个div
this.wrap.select('td.grid-hc[dataindex=col2] div').update(prompt);
@当个胖子: 其他的地方也是这样的结构吗
@lf03: 嗯 可能会有多个table
@当个胖子:
每个div的父元素都有dataindex='col2'这属性吗
@lf03:可以理解为有, dataindex= 的值 可以动态拼出来 ,col2 只是其中一个 。
@当个胖子:
var prompt = "abc";//需要替换的内容
var tds = $("[dataindex='col2']");//获取属性所有dataindex属性值为'col2'的元素
for (var i = 0; i < tds.length; i++) {
tds[i].innerHTML = tds[i].innerHTML.replace(/col2/g, prompt).replace(/Col2/g, prompt);
tds[i].setAttribute("dataindex", prompt);
}
需要引入jquery
这个问题解决了吗? 没有我帮写一下码
– lf03 2年前@lf03: 我换了其他方式实现功能 但是 问题没解决
– 当个胖子 2年前@当个胖子: 那我写一下 然后你再拿去试
– lf03 2年前@lf03: ok
– 当个胖子 2年前@当个胖子: 可以了 你试一下
– lf03 2年前