我在使用javascript / jquery从div检索的文本切片时遇到问题。我以为你可以切片每个字符串,并且.text()函数总是返回一个字符串,所以我没有看到问题。任何帮助将不胜感激!
HTML:
<body>
<div class="vaknaam">Div 1 :<span class="totaal">55%</span>
</div>
<div class="vaknaam">Div 2 :<span class="totaal">60%</span>
</div>
<div class="vaknaam">Div 3 :<span class="totaal">64%</span>
</div>
<div class="vaknaam">Div 4 :<span class="totaal">76%</span>
</div>
<div class="vaknaam">Div 5 :<span class="totaal">63%</span>
</div>
</body>
使用Javascript:
$(function () {
var divs = {};
var tempString, vakken = {};
$('.vaknaam').each(function (key, value) {
tempString = $(value).contents().filter(function () {
return this.nodeType == 3;
}).text();
tempString = tempString.slice(0, - 2);
vakken[tempString] = $(value).children('span').text();
});
for (var property in vakken) {
$('body').append("<p>" + property + "</p>");
}
});
答案 0 :(得分:3)
slice
不会修改初始字符串,这是不可变的。尝试:
tempString = tempString.slice(0, - 2);
答案 1 :(得分:3)
你有几个错误。
vakken
。slice
方法不会修改字符串,因此您应该指定返回的内容。property
var只是一个索引,因此您需要询问vakken[property]
您的代码应如下所示:
$(function () {
var divs = {};
var tempString, vakken = {}; //1
$('.vaknaam').each(function (key, value) {
tempString = $(value).contents().filter(function () {
return this.nodeType == 3;
}).text();
tempString = tempString.slice(0, -4); //2
vakken[tempString] = $(value).children('span').text();
});
for (var property in vakken) {
$('body').append("<p>" + property + "</p>"); //3
}
});
查看此codepen。