所以,我试图只显示文本的某些部分。信息传递方式如下。例如:[" 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>
答案 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>