首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在页面加载时替换多个标签中单词的实例?

如何在页面加载时替换多个标签中单词的实例?
EN

Stack Overflow用户
提问于 2019-02-16 22:42:36
回答 2查看 49关注 0票数 0

试图替换一个可能会出现在剃刀视图中数据库项的foreach循环中的单词。

我到目前为止尝试过的

代码语言:javascript
复制
<section class="section bg-gray">
    <div class="container">
        <div class="row gap-y">
            @foreach (var item in Model)
            {
                <div class="col-md-6 col-lg-4">
                    <div class="card d-block">
                        <p class="text-justify">@item.Text</p>
                        <p class="text-center mt-7">
                            <a class="btn btn-primary" href="#">Read more</a>
                        </p>
                    </div>
                </div>
            }
        </div>

        <script src="~/Scripts/jquery-3.3.1.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function () {
                var elements = getElementsByClassName("text-justify");
                $(elements).each(function(element) {
                    element.innerHTML = element.innerHTML.replace(/wordToReplace/g, 'newWord');
                });
            });
        </script>
    </div>
</section>

对不起,可怜的JavaScript,我是新来的。我寻找类似的问题,但更密切的主题通常是替换一个标签中的一个单词的实例。请帮帮忙。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-16 22:56:01

为此您不需要jQuery --您可以使用document.querySelectorAll,只需替换与选择器匹配的元素的所需文本。

请注意,我回避了一个文本元素,并为所需的类提供了一个文本元素,并将说明替换为,以演示使用情况。

代码语言:javascript
复制
let elements = document.querySelectorAll(".text-justify");

elements.forEach(function(element){
  let textContent = element.innerText;
  let newTextContent = textContent.replace(/justify/g, 'justified');
  element.innerText = newTextContent;
})
代码语言:javascript
复制
<p class="text-justify">This is a text with the class of text-justify</p>
<p>This is a text without the class of text-justify</p>
<p class="text-justify">This is a text with the class of text-justify</p>

票数 1
EN

Stack Overflow用户

发布于 2019-02-16 22:50:08

为此您不需要jQuery --使用一个简单的forEach循环。我还重构了您代码的其他部分(例如您缺少document )

代码语言:javascript
复制
document.getElementsByClassName("text-justify").forEach(element => element.innerHTML = element.innerHTML.replace(/word/g, "newWord"));

但是,如果您真的想使用jQuery:

代码语言:javascript
复制
$(".text-justify").html((index, element) => element.replace(/word/g, "newWord"));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54728410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档