我使用以下方法替换所有CREATE DATABASE ebdb WITH TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8';
代码'逗号哈希
<p>
实际上这些var node = document.getElementByClassName('discovereedKeywords');
node.innerHTML = node.innerHTML.replace(/,/g, '#');
代码实际上是由for循环生成的,但我的方法只更改了它找到的第一个<p>
代码,因此我尝试了类似下面的内容
考虑html看起来像这样
<p>
的Javascript
<p class="discovereedKeywords"> apple,banana,oranger</p>
<p class="discovereedKeywords"> apple,oranger,oranger</p>
<p class="discovereedKeywords"> kiwi,melon,pinapple</p>
答案 0 :(得分:2)
$('p').text(function(_, txt){
return txt.replace(/,/g, '#');
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<p class="discovereedKeywords"> apple,banana,oranger</p>
<p class="discovereedKeywords"> apple,oranger,oranger</p>
<p class="discovereedKeywords"> kiwi,melon,pinapple</p>
&#13;
在jQuery中,您可以使用text()
方法:
$('p').text(function(_, txt){
return txt.replace(/,/g, '#');
});
答案 1 :(得分:1)
这应该有效,问题是document.getElementsByClassName
返回DOM数组
但是您使用的document.getElementByClassName
无效
只是没有document.getElementByClassName
,请注意 s 符号
var nodes = document.getElementsByClassName('discovereedKeywords');
//this converts DOM array to plain JS Array
[].slice.call(nodes).forEach(function(node){
node.innerHTML = node.innerHTML.replace(/,/g, '#');
});
答案 2 :(得分:1)
你很亲密!首先,它是getElementsByClassName
,复数。其次,如果你想获得 i -th元素,请使用数组中的i,而不是变量。
这是a fiddle。
for (var i = 0; i < document.querySelectorAll('.discovereedKeywords').length; i++) {
var node = document.getElementsByClassName('discovereedKeywords')[i];
node.innerHTML = node.innerHTML.replace(/,/g, '#');
}
编辑:A. Wolff是正确的指出,在jQuery中你不需要单独循环每个项目,因为它内部使用类选择器执行此操作。
$(".discovereedKeywords").each(function(i, e) {
$(e).text(function() {
return $(e).text().replace(/,/g, '#');
});
});