2016-05-09 45 views
1

我想刪除/隱藏加載在我的頁面上的一段文本。JavaScript在頁面加載後替換文本

該元素沒有與之相關的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,"")); 
    }); 
}); 

沒有工作。這個想法是,在頁面加載後,它將刪除該行。
它也不會產生任何錯誤。即使在螢火蟲中也沒有。

有人嗎?

+0

您可以刪除,比如'$的DOM元素( ).remove()' – Satpal

+0

http:// stackoverflow。com/a/7321960/4478897 – nada

+0

不要重新設置html的整個部分,比如'body'的html,因爲html將不得不被重新解析並重新渲染 –

回答

2

目標元素基於其內容

你可以做到這一點使用jQuery中的:contains() pseudoselector,將允許您根據自己的內容,針對某些元素:

$(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

更廣泛的方法(僅選擇基於選擇器元素)

如果你想更簡單地通過更廣泛的選擇瞄準它(即出現一個名爲aClassName類下的任何<strong>標籤:

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

可以see an example of this approach here

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"); 

更新:

分析上的評論所提供的鏈接後,您可以使用以下命令:「aClassName> P>強:包含(‘刪除這行文字’)」

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

我已經嘗試了以下在我的標題中,''之前'但沒有工作。甚至頁腳沒有工作:' ' – Interactive

+0

在'' –

+0

之前加上因爲一些奇怪的原因,它不會飛。請檢查:https://www.cupsandleafs.com/shop/?lang=en,並添加一些東西到購物車。當你去結賬頁面; int他支付選項它說「測試模式ingeschakeld」。我想要刪除這條線! – Interactive