页面加载后javascript替换文本

时间:2016-05-09 12:58:19

标签: javascript jquery wordpress

我想删除/隐藏在我的页面上加载的一段文字。

该元素没有与之关联的ID,因此我想使用特定于文本的方法。

让我们说文字是:"删除这一行文字"。
html看起来像这样:

<div class="aClassName">
<p>
    <strong>remove this line of text</strong>
    ... the rest of the content.
</p>

我尝试了以下内容:

jQuery(document).ready(function($){
    document.body.innerHTML = document.body.innerHTML.replace('remove this line of text', '');
});

没有工作。所以我尝试了这个:

jQuery(document).ready(function($){
    $("body").children().each(function () {
       $(this).html( $(this).html().replace(/remove this line of text/g,"") );
    });
});

没有工作。这个想法是在页面加载后删除该行。
它也不会产生任何错误。甚至没有在萤火虫中。

任何?

2 个答案:

答案 0 :(得分:2)

基于内容的目标元素

您可以使用jQuery中的:contains()伪选择器来完成此操作,这将允许您根据其内容定位某些元素:

$(function(){
   // This will remove any strong elements that contain "remove this line of text"
   $('strong:contains("remove this line of text")').remove();
});

你可以see a working example of this here

更广泛的方法(仅针对基于选择器的元素)

如果您希望更简单地通过更通用的选择器(即显示在名为<strong>的类下方的任何aClassName标记来定位它:

$('.aClassName strong').remove();

你可以see an example of this approach here

答案 1 :(得分:0)

我猜您可以使用find()text(),即:

$('.aClassName').find('strong').text("123");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="aClassName">
<p>
    <strong>remove this line of text</strong>
    ... the rest of the content.
</p>

或者简单地说:

$('strong:contains("remove this line of text")').text("New text");

<强>更新

在分析评论中提供的链接后,您可以使用以下内容:

$('.payment_method_mollie_wc_gateway_ideal').find('strong').text("");