如何从jQuery移动加载程序中删除<h1>标签?

时间:2019-04-04 16:23:59

标签: jquery jquery-mobile

我正在页面上使用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工具正在发出警告。

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

3 个答案:

答案 0 :(得分:0)

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

$('.ui-loader').find('h1').remove();

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我对参加聚会总是有点太晚了,但是如果您需要自定义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时,您可以通过使用{{ 1}}选项:

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"); 选项将不再能以这种方式工作,因为默认情况下,JQM正在搜索textVisible标记,该标记在加载器标记中不再存在。这应该在JQM源代码中固定,并具有可以更灵活配置的方式,而无需硬编码h1标签:

h1