Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JQuery-删除页面加载时的动态内容?_Jquery - Fatal编程技术网

JQuery-删除页面加载时的动态内容?

JQuery-删除页面加载时的动态内容?,jquery,Jquery,如何使用jQuery删除页面加载事件中动态生成的文本? 我试过谷歌,但没发现有用的东西。实际上,我使用的是第三方JS库,它在html页面上插入一些我需要删除的文本 我尝试了这段代码,但它删除了html页面中已经存在的常量文本,而不是动态文本 $('div:contains("Powered by")').remove(); 编辑: 这是完整的代码 <!DOCTYPE html> <html> <head> <script

如何使用jQuery删除页面加载事件中动态生成的文本?
我试过谷歌,但没发现有用的东西。实际上,我使用的是第三方JS库,它在html页面上插入一些我需要删除的文本

我尝试了这段代码,但它删除了html页面中已经存在的常量文本,而不是动态文本

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

这是完整的代码

    <!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>

函数googleTranslateElementInit(){
新的google.translate.TranslateElement({pageLanguage:'en',includelanguages:'en,es,fr,it'},'google_translate_element');
}

注意:Google translator添加了我需要的选择框,但在其下方添加了一些我想删除的文本“Powered by”。虽然可以用css隐藏文本,但我想用jQuery删除它。

在页面加载事件或
窗口加载事件中,它不会工作,因为您的
DOM
还没有准备好,这意味着由
驱动的
div
和text
不在那里,而您的
code
在此之前正在执行,你必须把你的代码放在
DOM
ready函数中,该函数位于生成该函数的那一行下面

注意检查您的br播放机控制台是否有
错误
如果没有错误,则它将正常工作

喜欢

$(文档).ready(函数(){
$(“div:contains('Powered By'))).remove();
});

由更新提供动力

另一个解决方案是:

$(窗口).on('load',函数(e){
$('div.skiptranslate.goog te gadget').hide();
});

这是一个简单的片段
函数googleTranslateElementInit(){
新的google.translate.TranslateElement({pageLanguage:'en',includelanguages:'en,es,fr,it'},'google_translate_element');
}
旧答案

您可以使用来检查您的一个div下是否存在您要查找的文本:

$(document).on('DOMNodeInserted','div:contains(“Powered By”)),函数(e){
log('element div conating'由“removed!”供电);
$(this.remove();
});
$(函数(){
$('#addText')。在('click',函数(e)上{
$('div').append('Powered By');
});
$('#addDiv')。在('click',函数(e)上{
$(“正文”)。在(………)之前;
});
});

技术支持
技术支持
技术支持
添加文本

添加div
可以创建小提琴。这样我们就可以检查了。也许你应该把这段代码放到一个区间中,比如,var interval\u of_function=setInterval(function(){$('div:contains(“Powered by”))。remove();},100);这是解决这个问题的最好办法吗?我认为不是因为它可能有更多的资源@esertbasWell M.Tanzil解释得很好,它应该可以工作,除非在一段时间后应用文本驱动。试试这个代码;它将循环,直到找到“供电”,然后停止。var interval_of_function=setInterval(function(){var query=$('div:contains(“Powered by”));if(query.length>0){query.remove();}else{clearInterval(interval_of_function);},100);我已经编辑了我的问题。请参阅完整代码。setInterval不起作用。请在由
驱动的
周围使用单引号,同时检查代码段,您可以检查浏览器控制台是否有错误,可能有错误。请再次检查我的问题。这是关于动态生成的文本,而不是页面上已经存在的静态文本。然后将该行放在生成该
行下方,或者使用
setInterval
。效果非常好。我唯一修改它的地方是将代码放入$(document).ready(function(){$(document).on('DOMNodeInserted','div:contains('Powered By'),function(e){console.log('element div conating'Powered By'removed!');$(this.remove();});