2016-06-29 2 views
1

Как удалить динамически сгенерированный текст при загрузке страницы с помощью jQuery?
Я пробовал Google, но ничего не нашел полезным. На самом деле я использую стороннюю JS-библиотеку, которая вставляет некоторый текст на html-страницу, которую мне нужно удалить.JQuery - удалить динамическое содержимое при загрузке страницы?

Я пробовал этот код, но он удаляет постоянный текст, который уже находится на HTML-странице, а не динамический текст.

$('div:contains("Powered by")').remove(); 

Edit:

Вот полный код.

<!DOCTYPE html> 
    <html> 
    <head> 
    <script src="js/jquery-2.1.4.min.js"></script> 
    </head> 
    <body> 
    <div id="translate"> 
    <div id="google_translate_element"></div><script type="text/javascript"> 
    function googleTranslateElementInit() { 
    new google.translate.TranslateElement({pageLanguage: 'en',includedLanguages: 'en,es,fr,it'}, 'google_translate_element'); 
} 
    </script><script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script> 
    </div> 
    </body> 
    </html> 

Примечание: Google переводчик добавляет выберите окно, которое мне нужно, но добавляет некоторый текст «Работает на» под ним, который я хочу, чтобы удалить. Хотя, можно скрыть текст с помощью css, но я хочу удалить его с помощью jQuery.

+0

Вы можете создать скрипку. Чтобы мы могли проверить. –

+0

Возможно, вы должны поместить этот код в такой интервал, как: var interval_of_function = setInterval (function() {$ ('div: contains ("Powered by")'). Remove();}, 100); – esertbas

+0

Это лучшее решение для этого вопроса? Я думаю не потому, что у него может быть больше ресурсов. @esertbas –

ответ

0

В случае загрузки страницы или window события загрузки не будет работать, потому что ваш DOM еще не готов, означает div с текстом Powered by не существует, и ваш code выполняется до того, что вы должны поместить свой код в DOM готовая функция ниже этой строки, где генерируется это Powered By.

ПРИМЕЧАНИЕ Проверьте brsower консоль для errors, если его нет, то он будет работать

LIKE

$(document).ready(function(){ 
 
$("div:contains('Powered By')").remove(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div>Powered By</div>

Тогда он будет работать.

+0

Я уже поместил этот код в DOM, но он не работает. –

+0

используйте одинарные кавычки вокруг 'Powered By', также проверяйте фрагмент, , вы можете проверить свою консоль браузера на наличие ошибок, могут быть ошибки. –

+0

Повторите мой вопрос. Речь идет о динамически генерируемом тексте, а не статическом тексте уже на странице. –

1

UPDATE

Другим решением является:

$(window).on('load', function(e) { 
    $('div.skiptranslate.goog-te-gadget').hide(); 
}); 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 


<div id="translate"> 
    <div id="google_translate_element">This is a simple snippet</div> 
    <script type="text/javascript"> 
    function googleTranslateElementInit() { 
     new google.translate.TranslateElement({pageLanguage: 'en',includedLanguages: 'en,es,fr,it'}, 'google_translate_element'); 
    } 
</script> 
<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script> 

Старый Ответ

Вы можете использовать DOMNodeInserted mutation event, чтобы проверить, если под один из вашего DIV присутствует текст, который вы ищете:

$(document).on('DOMNodeInserted', 'div:contains("Powered By")', function(e) { 
 
    console.log('element div conatining "Powered By" removed!'); 
 
    $(this).remove(); 
 
}); 
 
$(function() { 
 
    $('#addText').on('click', function(e) { 
 
    $('div').append('Powered By'); 
 
    }); 
 
    $('#addDiv').on('click', function(e) { 
 
    $('body').before('<div>..................</div>'); 
 
    }); 
 
});
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script> 
 

 
<div>Powered By</div> 
 
<div>Powered By</div> 
 
<div>Powered By</div> 
 
<button id="addText">Add text</button> 
 
<button id="addDiv">Add div</button>

+0

работал как шарм. Единственное, что я изменил, чтобы поместить ваш код в $ (document) .ready (function() {$ (document) .on ('DOMNodeInserted', 'div: contains ("Powered By")', function (e) { console.log ('элемент div conatining "Приведено в действие« удалено! »); $ (this) .remove(); });}); –

+0

Ваш обновленный код также скрывает окно выбора. –

Смежные вопросы