更改jQuery

时间:2018-05-30 09:32:24

标签: javascript jquery

所以,我试图只显示文本的某些部分。信息传递方式如下。例如:[" PS4"]我只想要显示PS4文本,所以我用jQuery做了这个:

var text = $('.gender').text();
var text2=text.substring(text.indexOf('"')+1,text.lastIndexOf('"'));
$('.gender').text(text2);

问题是我想要更改每个具有.gender类但只有相应文本的元素文本,如下所示:

[" PS4"] [" XBOX"]

<div class="gender">PS4</div><div class="gender">XBOX</div>

我尝试用.each()函数来做这件事,但我有这样的事情:

<div class="gender">PS4"]["XBOX</div><div class="gender">PS4"]["XBOX</div>

这里是jQuery .each()的代码:

$('.gender').each(function(){
    var text = $('.gender').text();
    var text2=text.substring(text.indexOf('"')+1,text.lastIndexOf('"'));
    $('.gender').text(text2);
});

编辑:

我有一个HTML:

<div class="gender">["PS4"]</div>
<div class="gender">["XBOX"]</div>

所以我想删除&#39; [&#34;&#34;]&#39;来自每个.gender类的元素,所以它显示如下:

<div class="gender">PS4</div>
<div class="gender">XBOX</div>

3 个答案:

答案 0 :(得分:2)

使用$(this)而非$(".gender")

$('.gender').each(function() {
  var text = $(this).text();
  var text2 = text.substring(text.indexOf('"') + 1, text.lastIndexOf('"'));
  $(this).text(text2);
});

<强>演示

$('.gender').each(function() {
  var text = $(this).text();
  var text2 = text.substring(text.indexOf('"') + 1, text.lastIndexOf('"'));
  $(this).text(text2);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="gender">["PS4"]</div>
<div class="gender">["XBOX"]</div>

答案 1 :(得分:0)

您可以使用RegEx

转到$.text(callback)

$(function() {
  $('.gender').text(function() {
    return $(this).text().replace(/^\[\"(.*)\"\]$/, '$1');
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="gender">["PS4"]</div>
<div class="gender">["XBOX"]</div>

分解,^\[\"(.*)\"\]$如下:

  • ^
  • 开头
  • (.*)具有任意长度匹配的组
  • $
  • 结尾

答案 2 :(得分:0)

也尝试这个:

$('.gender').each(function() {
   var text = $(this).text();
   var text2 = text.replace("\"]", "");
   text2 = text2.replace("[\"", "");
   
  $(this).text(text2);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="gender">["PS4"]</div>
<div class="gender">["XBOX"]</div>