我有此代码:
<span class="price-measure">
23,63 € / 1 m2
</span>
现在,我想用“ XYTEXT”更改“ / 1平方米”,但是我不知道如何。
我尝试在下面使用JS代码,但无法正常工作。
谢谢:-)
<script type="text/javascript">
$(document).ready(function () {
var elem = $('.price-measure span:contains("/ 1 m2 ")');
elem.text(elem.text().replace("/ 1 m2 ", "s DPH/m2"));
});
</script>
答案 0 :(得分:1)
<span>23,63 €</span>
<span class="price-measure">/ 1 m2</span>
<script type="text/javascript">
$(document).ready(function () {
var elem = $('.price-measure');
elem.html("s DPH/m2");
});
</script>
不更改html内容:
<span class="price-measure">
23,63 € / 1 m2
</span>
<script>
$(document).ready(function () {
var text = $('.price-measure').text().replace("/ 1 m2", "s DPH/m2");
$('.price-measure').text(text);
});
</script>
答案 1 :(得分:1)
您的选择器错误。当您真正想要的是包含文本的元素span
时,您正在.price-measure
内要求price-measure
。
为了获得良好的编码习惯,我还将硬编码的值移到了变量中,以免重复。
(我还从搜索查询的末尾删除了多余的空格,以使功能更强大。)
$(document).ready(function () {
var replace="/ 1 m2";
var replaceWith = "s DPH/m2";
var elem = $('.price-measure:contains("' + replace + '")');
// Make sure we have the element.
console.log(elem);
elem.text(elem.text().replace(replace, replaceWith));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="price-measure">
23,63 € / 1 m2
</span>
答案 2 :(得分:1)
var str1 = "23,63 € / 1 m2";
var str2 = "/ 1 m2";
if(str1.indexOf(str2) != -1){
alert("23,63 € / 1 m2".slice(0,-(str1.indexOf(str2)))+ 'XYTEXT')
}
str2是需要替换的选定文本。所以我只是从主字符串中删除该部分,然后连接一个新字符串。
答案 3 :(得分:1)
var price = document.getElementById('price-measure').innerHTML
document.getElementById('price-measure').innerHTML= price.replace('1 m2','s DPH/m2')
i think good way use id with js not className
<br/><br/><br/><br/>
<span id="price-measure">
23,63 € / 1 m2
</span>
答案 4 :(得分:0)
我不知道如何使用jQuery,但是在纯JS中,您可以这样做:
const el = document.querySelector(/* your selector */)
el.innerText = el.innerText.replace("/ 1 m2 ", "s DPH/m2")
答案 5 :(得分:0)
如果您不需要预先过滤元素,只需遍历它们并替换其内容:
$(document).ready(function() {
var elements = $('.price-measure');
elements.each(function(index, element) {
element = $(element)
element.text(element.text().replace('/ 1 m2', 's DPH/m2'));
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="price-measure">
23,63 € / 1 m2
</span>
如果元素很多,并且需要在替换它们的内容之前对其进行预过滤,请使用jQuery的.filter(...)
方法检查特定元素是否具有可替换的文本:
$(document).ready(function() {
var replacement = '/ 1 m2';
var elements = $('.price-measure').filter(function(index, element) {
return $(element).text().indexOf(replacement) > -1;
});
elements.each(function(index, element) {
element = $(element)
element.text(element.text().replace('/ 1 m2', 's DPH/m2'));
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="price-measure">
23,63 € / 1 m2
</span>
答案 6 :(得分:0)
答案 7 :(得分:0)
您可以尝试将innerHTML属性与split结合使用。
类似这样的东西:
var first_part = $('.price-measure').innerHTML.split("/")[0];
var second_part = $('.price-measure').innerHTML.split("/")[1];
$('.price-measure').innerHTML.split("/")[0].append('XYTEXT');