为什么javascript要添加一个随机样式标签?

Why would javascript add a random style tag?

本文关键字:随机 一个 样式 标签 javascript 添加 为什么      更新时间:2023-09-26

我正在使用我在网上找到的一个脚本来在html表单上添加输入提示。我让它全部工作,但现在的代码是随机生成的一个样式标签,抛出了我的css。代码应该生成如下所示的span标签:

<span id="input-prompt-0" class="input-prompt">Company Name</span>

用于每个文本输入字段。相反,它一直给我这个:

<span id="input-prompt-0" class="input-prompt" style="display: block;">Company Name</span>

知道为什么吗?

代码如下:

$(document).ready(function(){
  $('input[type=text][title],input[type=password][title],textarea[title]').each(function(i){
    $(this).addClass('input-prompt-' + i);
    var promptSpan = $('<span class="input-prompt"/>');
    $(promptSpan).attr('id', 'input-prompt-' + i);
    $(promptSpan).append($(this).attr('title'));
    $(promptSpan).click(function(){
      $(this).hide();
      $('.' + $(this).attr('id')).focus();
    });
    if($(this).val() != ''){
      $(promptSpan).hide();
    }
    $(this).before(promptSpan);
    $(this).focus(function(){
      $('#input-prompt-' + i).hide();
    });
    $(this).blur(function(){
      if($(this).val() == ''){
        $('#input-prompt-' + i).show();
      }
    });
  });
});

$('#input-prompt-' + i).show();正在修改样式。从jQuery.show的文档:

匹配的元素将立即显示,没有动画。这大致相当于调用。css('display', 'block'),除了显示属性恢复为初始值

我想更突出的问题是为什么这是"抛弃[你的]css"?

这行代码添加了style属性:

$('#input-prompt-' + i).show();

你可以用:

$('#input-prompt-' + i).css("display", "");

这将显示span并消除style属性

问题很可能与您使用。show()和。hide()有关。

这些函数通过改变元素的样式来发挥它们的魔力。

JQuery show()和hide()函数修改的样式