如何删除tag from jQuery mobile loader?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何删除tag from jQuery mobile loader?相关的知识,希望对你有一定的参考价值。

我在我的页面上使用jQuery 1.4.5并在ajax请求之前使用加载器:

$.mobile.loading('show', {theme:"e", text:"", textonly:false, textVisible: false});

完成请求后,我隐藏它:

$.mobile.loading('hide');

这样可行,但它会在页面末尾生成一个标签,文本将位于该标签上。

<div class="ui-loader ui-corner-all ui-body-e ui-loader-default">
 <span class="ui-icon-loading"></span>
 <h1></h1>
</div>

由于第二个h1标签,一些SEO工具现在发出警告。

如何从加载程序中删除标记?

答案

您可以使用jQuery remove方法删除所需的元素。

$('.ui-loader').find('h1').remove();
另一答案

来自jQuery documentation

从DOM中删除匹配元素集。

与.empty()类似,.remove()方法从DOM中获取元素。如果要删除元素本身以及其中的所有内容,请使用.remove()。除了元素本身之外,还删除了与元素关联的所有绑定事件和jQuery数据。要删除元素而不删除数据和事件,请改用.detach()。

setTimeout(function(){
  $("h1").remove();
}, 3000);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<h1>H1 Heading</h1>
另一答案

我总是对派对来说太晚了,但如果您需要自定义JQM加载程序,请注意,在您的问题中描述的选项附近,您还可以提供html参数。

首先,您需要在JQM初始化期间设置您的自定义html而不使用不需要的h1标记:

<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script>
  $(document).on("mobileinit", function () {
    /* jQuery Mobile initialization */
    var html = "<div class='ui-loader'><span class='ui-icon-loading'></span></div>";
    $.mobile.loader.prototype.defaultHtml = html;
    // ... other settings as You need
    $.mobile.loader.prototype.options.text = "";
    $.mobile.loader.prototype.options.textVisible = false;
  });
</script>
<script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.js"></script>

之后,您可以在没有任何文本消息的情况下显示loader或 - 当您无论如何需要显示加载message时 - 您可以进一步自定义它,始终使用html选项:

var html = "<div class='ui-loader'><span class='ui-icon-loading'></span><h6>Wait...</h6></div>";
$.mobile.loading("option", "html", html);
$.mobile.loading("show");


Please note:

标准的textVisible选项不再以这种方式工作,因为默认情况下JQM正在搜索加载器标记内不再存在的h1标记。这应该在JQM源代码中修复,允许更灵活的配置,而无需对h1标记进行硬编码:

1513                this.element.find( "h1" ).text( message );

以上是关于如何删除tag from jQuery mobile loader?的主要内容,如果未能解决你的问题,请参考以下文章