Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法对从div';s_Javascript_Jquery_String_Slice - Fatal编程技术网

Javascript 无法对从div';s

Javascript 无法对从div';s,javascript,jquery,string,slice,Javascript,Jquery,String,Slice,我无法使用javascript/jquery分割从div检索到的文本。我以为可以对每个字符串进行切片,.text()函数总是返回一个字符串,所以我看不出问题所在。任何帮助都将不胜感激 Html: 第一组:55% 第2分部:60% 第3分部:64% 第4分部:76% 第5分部:63% Javascript: $(function () { var divs = {}; var tempString, vakken = {}; $('.vaknaam').each(function (key,

我无法使用javascript/jquery分割从div检索到的文本。我以为可以对每个字符串进行切片,.text()函数总是返回一个字符串,所以我看不出问题所在。任何帮助都将不胜感激

Html:


第一组:55%
第2分部:60%
第3分部:64%
第4分部:76%
第5分部:63%
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>");
}
});
$(函数(){
var divs={};
var tempString,vakken={};
$('.vaknaam')。每个(函数(键、值){
tempString=$(值).contents().filter(函数(){
返回this.nodeType==3;
}).text();
tempString=tempString.slice(0,-2);
vakken[tempString]=$(value).children('span').text();
});
for(vakken中的var属性){
$('body')。追加(“”+属性+”

”; } });
slice
不修改初始字符串,该字符串是不可变的。尝试:

tempString = tempString.slice(0, - 2);

slice
不修改初始字符串,该字符串是不可变的。尝试:

tempString = tempString.slice(0, - 2);

你有几个错误

  • 您需要声明一个初始化变量
    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
      }
    });
    
    $(函数(){
    var divs={};
    var tempString,vakken={};//1
    $('.vaknaam')。每个(函数(键、值){
    tempString=$(值).contents().filter(函数(){
    返回this.nodeType==3;
    }).text();
    tempString=tempString.slice(0,-4);//2
    vakken[tempString]=$(value).children('span').text();
    });
    for(vakken中的var属性){
    $('body')。追加(“”+property+“

    ”);//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
      }
    });
    
    $(函数(){
    var divs={};
    var tempString,vakken={};//1
    $('.vaknaam')。每个(函数(键、值){
    tempString=$(值).contents().filter(函数(){
    返回this.nodeType==3;
    }).text();
    tempString=tempString.slice(0,-4);//2
    vakken[tempString]=$(value).children('span').text();
    });
    for(vakken中的var属性){
    $('body')。追加(“”+property+“

    ”);//3 } });


    检查此项。

    您忽略了
    .slice()
    调用的返回值。我将它链接到
    .text()
    的末尾。。。因此,
    …text().slice(0,-2)
    请注意,如果您发布了工作(至少到您遇到问题的地方)代码,您的问题将更容易理解。在您的小提琴中,您没有包含jQuery,并且没有定义
    vakken
    。这类事情使得解决实际问题变得更加困难……哦,如果你想摆脱
    ,你还需要
    $.trim()
    文本。你还没有告诉我们预期的产量是多少,我把小提琴修好了。我为我的错误感到抱歉。我正在筛选文本节点,因为它实际上是:我希望摆脱。您忽略了
    .slice()
    调用的返回值。我只是将其链接到
    .text()
    的末尾。。。因此,
    …text().slice(0,-2)
    请注意,如果您发布了工作(至少到您遇到问题的地方)代码,您的问题将更容易理解。在您的小提琴中,您没有包含jQuery,并且没有定义
    vakken
    。这类事情使得解决实际问题变得更加困难……哦,如果你想摆脱
    ,你还需要
    $.trim()
    文本。你还没有告诉我们预期的产量是多少,我把小提琴修好了。我为我的错误感到抱歉。我正在筛选文本节点,因为它实际上是:我希望摆脱。它修复了切片问题,但代码仍有错误。它修复了切片问题,但代码仍有错误。你是对的,但我希望打印属性,而不是vakken中的属性值。如果你附加属性,你会看到字符串没有被切分。很抱歉,我丢失了,你能给我一个你想要打印什么的例子吗?第1部分第2部分第3部分。。。没有结尾的“:”。好的,那么只需将切片参数-2替换为-4:tempString=tempString.slice(0,-4)。(我已经更新了代码)当我像上面的@squint建议的那样首先修剪它时,它确实可以工作,非常感谢!你是对的,但我希望打印财产,而不是瓦肯的价值。如果你附加属性,你会看到字符串没有被切分。很抱歉,我丢失了,你能给我一个你想要打印什么的例子吗?第1部分第2部分第3部分。。。没有结尾的“:”。好的,那么只需将切片参数-2替换为-4:tempString=tempString.slice(0,-4)。(我已经更新了代码)当我像上面的@squint建议的那样首先修剪它时,它确实可以工作,非常感谢!