如何在jQuery .each()循环中使用.slice()和返回的文本?

时间:2016-07-14 17:59:43

标签: jquery each

我似乎无法完成这项工作,我尝试了许多不同的组合。我想要做的就是从.each()迭代器返回的文本中获取第4和第5个字符,然后再将其写入数组。

    var timeItems = [];
    $("div[class*='field-name-field-time-']").each(function (i, e) {
        $(this).text().slice(3,5);
        timeItems.push($(e));
    });

有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

试试这个

.slice()

text也应该有效。检查下面的JSFiddle并取消注释使用slice的行来试用它。

还有什么回到阵列?我假设您指的是对象,但如果您想要返回字符,则应将timeItems推送到$(e)而不是IF

编辑: https://jsfiddle.net/nv5tfszw/4/

答案 1 :(得分:0)

var timeItems = [];
$("div[class*='field-name-field-time-']").each(function (i, e) {
    var text = $(e).text().slice(3,5);
    timeItems.push(text);
});
  1. 尝试使用each参数中的第二个参数而不是this
  2. 将切片指定给变量并返回推送。 (http://www.w3schools.com/jsref/jsref_slice_string.asp
  3.   

    经常提出这样的问题,“如果这是元素,为什么第二个DOM元素参数传递给回调?”   无论是有意还是无意,执行上下文都可能发生变化。当一直使用关键字this时,很容易让我们自己或其他阅读代码的开发人员感到困惑。

    https://learn.jquery.com/using-jquery-core/iterating/#the-second-argument