如何重置最近的span对象的文本?

时间:2018-03-14 06:37:12

标签: javascript jquery html

这是我的HTML:

<div class="box">
  <input type="file" name="file-7" id="file-7" class="inputfile inputfile-6" accept="image/png,image/gif,image/jpeg" />
  <label for="file-7">
     <span>This is test</span>
     <strong>Upload photo</strong>
  </label>
</div>

我想使用jquery清除span的文本(如果有的话)。我写了代码:

$('#file-7').on('change', function(){
      var spn = $(this).closest('span');
      spn.attr('text','');
});

该文字未被删除。我做错了什么?

3 个答案:

答案 0 :(得分:4)

你只需要这样做

spn.html('');

我们不需要用变量

编写$()

答案 1 :(得分:3)

$('#file-7').on('change', function(){
      var spn = $(this).closest('.box').find('span');
      spn.text('');
});

说明:您必须找到最接近的父元素,该元素具有您尝试替换文本的范围。这里的父母是.box&amp;然后在其中找到span

你犯的第二个错误是$(spn).attr('text','');。这里不需要$()&amp;不使用attr()。您可以像spn.text('');

一样简单

为您准备样本:

&#13;
&#13;
    $('#file-7').on('change', function(){
          var spn = $(this).closest('.box').find('span');
          spn.text('');
    });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="box">
  <input type="file" name="file-7" id="file-7" class="inputfile inputfile-6" accept="image/png,image/gif,image/jpeg" />
  <label for="file-7">
     <span>This is test</span>
     <strong>Upload photo</strong>
  </label>
</div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您可以在jQuery中使用text函数替换文本。并且您的变量是spn但是您使用它作为$(spn)。

$('#file-7').on('change', function(){
      var spn = $(this).next('label').find('span');
      spn.text('');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="box">
  <input type="file" name="file-7" id="file-7" class="inputfile inputfile-6" accept="image/png,image/gif,image/jpeg" />
  <label for="file-7">
     <span>This is test</span>
     <strong>Upload photo</strong>
  </label>
</div>