在javascript中查找并替换单词
Find and replace word in javascript
我正在尝试在Javascript中查找和替换单词,html结构无法更改,所以我只能使用JS进行更改,不能使用jQuery,但使用Javascript不太好:
HTML结构如下:
<a id="ys-cc-tablink">
<em>
<img src="card.jpg">
<span> Credit / Debit Card</span>
</em>
</a>
我正试图用标题替换信用卡/借记卡支付我尝试过的内容如下,并且运行良好:
$("#ys-cc-tablink > em > span").each(function() {
var text = $(this).text();
$(this).text(text.replace(' Credit / Debit Card', 'Payment'));
});
但我需要Javascript而不是jQuery,有人能帮忙吗?
感谢
更新:
var str = document.getElementById("demo").getElementsByTagName("span")[0].innerHTML;
var res = str.replace("Credit / Debit Card", "Payment");
document.getElementById("ys-cc-tablink").getElementsByTagName("span")[0].innerHTML = res;
您可以使用querySelectorAll
获取所有元素,循环遍历它们,并检查要替换的文本是否存在,然后替换它:
var spans = document.querySelectorAll('#ys-cc-tablink span');
for(var i=0;i<spans.length;i++){
var span_text = spans[i].innerText;
if(span_text.indexOf('Credit / Debit Card') != -1)
spans[i].innerText = span_text.replace("Credit / Debit Card", "Payment");
}
希望这能有所帮助。
var spans = document.querySelectorAll('#ys-cc-tablink span');
for(var i=0;i<spans.length;i++){
var span_text = spans[i].innerText;
if(span_text.indexOf('Credit / Debit Card') != -1)
spans[i].innerText = span_text.replace("Credit / Debit Card", "Payment");
}
<a id="ys-cc-tablink">
<em>
<img src="">
<span> My Credit / Debit Card</span><br>
<span> test</span><br>
<span> Credit / Debit Card and some extra text</span>
</em>
</a>
这给出了元素引用:
var elem = document
.getElementById("ys-cc-tablink")
.getElementsByTagName("em")[0]
.getElementsByTagName("span")[0];
替换代码块:
elem.innerHTML.replace("Credit / Debit Card", "Payment")
var elem = document
.getElementById("ys-cc-tablink")
.getElementsByTagName("em")[0]
.getElementsByTagName("span")[0];
elem.innerHTML = elem.innerHTML.replace("Credit / Debit Card", "Payment");
<a id="ys-cc-tablink">
<em>
<img src="card.jpg">
<span> Credit / Debit Card</span>
</em>
</a>
我猜您的问题与不间断空间
实体有关。但是,如果您无论如何都要替换整个文本,为什么不使用$(this).text('Payment')
呢?
作为参考,NBSP可以在JavaScript中表示为'u00A0
。所以你可以做$(this).text(text.replace(''u00A0Credit / Debit Card', 'Payment'));
在没有jQuery的情况下,使用element.innerHTML = element.innerHTML.replace('...', '...');
或element.textContent = ...
相关文章:
- JavaScript Regex 将单词替换为其第一个字母,除非在括号内
- 如何替换数据属性中的特定字符串单词
- 替换与单词'匹配的文本字符;购物车'替换为img图标
- Javascript/jQuery替换tamil语言输入框中的最后一个单词
- 用特定的javascript正则表达式替换每个单词
- 查找并替换多个单词 JavaScript
- 如何使用正则表达式 JavaScript 替换具有特定单词的整行
- 查找单词的一部分,但替换整个单词
- JavaScript-遍历数组并替换页面上的单词
- 我想使用replace函数扫描json对象,然后用字符串替换匹配的单词
- JavaScript无法用相同单词的数量替换字符串
- Regex,替换所有以@开头的单词
- 根据Javascript中的模式替换单词
- 使用javascript替换单词
- 如果单词末尾没有“s”,请替换单词末尾的“s”
- 当用户输入时替换单词(JS)
- 用表单(Javascript)替换单词
- 在javascript中查找并替换单词
- 根据正则表达式搜索结果替换单词
- 用JavaScript动态替换单词