Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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
Jquery each()只对1个元素起作用_Jquery_Each - Fatal编程技术网

Jquery each()只对1个元素起作用

Jquery each()只对1个元素起作用,jquery,each,Jquery,Each,我想删除管理价格类中价格的最后5个字符。正如我在控制台中看到的,这只对1个元素起作用 $(".administrate-price").each(function(i, object) { thePrice = $(this).text(); }); thePrice = thePrice.substr(0, thePrice.length - 5); 如何使所有管理价格元素都能使用此功能 当每个迭代完成时,价格将设置为最后一个元素的文本。在迭代本身中执行子字符串操作 $(".admi

我想删除
管理价格
类中价格的最后5个字符。正如我在控制台中看到的,这只对1个元素起作用

$(".administrate-price").each(function(i, object) {
    thePrice = $(this).text();
});
thePrice = thePrice.substr(0, thePrice.length - 5);

如何使所有
管理价格
元素都能使用此功能

每个
迭代完成时,
价格将设置为最后一个元素的文本。在迭代本身中执行
子字符串
操作

$(".administrate-price").each(function(i, object) {
         var thePrice = $(this).text();
         $(this).text(thePrice.substr(0, thePrice.length-5));
    });

每次
迭代完成时,
价格将设置为最后一个元素的文本。在迭代本身中执行
子字符串
操作

$(".administrate-price").each(function(i, object) {
         var thePrice = $(this).text();
         $(this).text(thePrice.substr(0, thePrice.length-5));
    });

请注意,在循环完成后,您正在循环外部设置价格值。这意味着它将只看到最终迭代的值。试试这个:

$(".administrate-price").each(function(i, object) {
    thePrice = $(this).text().substr(0, thePrice.length - 5);
    $(this).text(thePrice);
});
$(".administrate-price").text(function(i, t) {
    return t.substr(0, t.length - 5);
});
还值得注意的是,在本例中,您不需要使用
each()
,因为您可以提供一个函数来对每个元素分别执行
text()
。试试这个:

$(".administrate-price").each(function(i, object) {
    thePrice = $(this).text().substr(0, thePrice.length - 5);
    $(this).text(thePrice);
});
$(".administrate-price").text(function(i, t) {
    return t.substr(0, t.length - 5);
});

请注意,在循环完成后,您正在循环外部设置价格值。这意味着它将只看到最终迭代的值。试试这个:

$(".administrate-price").each(function(i, object) {
    thePrice = $(this).text().substr(0, thePrice.length - 5);
    $(this).text(thePrice);
});
$(".administrate-price").text(function(i, t) {
    return t.substr(0, t.length - 5);
});
还值得注意的是,在本例中,您不需要使用
each()
,因为您可以提供一个函数来对每个元素分别执行
text()
。试试这个:

$(".administrate-price").each(function(i, object) {
    thePrice = $(this).text().substr(0, thePrice.length - 5);
    $(this).text(thePrice);
});
$(".administrate-price").text(function(i, t) {
    return t.substr(0, t.length - 5);
});

你需要更好地理解你的构建模块

jQuery
.each(fn)
方法可用于任何jQuery集合,并将函数
fn
与元素的数字索引同步应用于集合的每个元素

因此,您的代码显示:

  • 使用
    管理价格
    类获取所有元素
  • 对于每个元素:将全局变量
    thePrice
    设置为元素的内部文本
  • 循环完成后:将全局变量
    thePrice
    设置为缺少最后5个字符的子字符串
  • 第2步重复地重击要设置全局变量的值,以便只保留最后一个值。您给出的代码片段本身不做任何其他事情;它只是敲打一个全局变量,您可以稍后在
    窗口中看到该变量。价格
    (在浏览器上)

    相反,你可能想要这个:

  • 使用
    管理价格
    类获取所有元素
  • 对于每一项:
    • 获取当前文本
    • 删掉那段文字
    • 将当前文本设置为上述截断
  • 因此,功能(封装步骤2)需要:

    function () { 
        var el = $(this);
        el.text( // setter
            el.text() // getter
              .slice(0, -5) // truncation
        );
    }
    

    这定义了一个局部变量
    el
    ,它保存了
    $(This)
    ,因此jQuery不需要构建两个单元素集合,只需将其中一个作为getter和setter重用;如果需要,您也可以只编写一行代码
    函数(){$(this).text($(this).text().slice(0,-5))}
    ,而不存储此变量。

    您需要更好地理解构建块

    jQuery
    .each(fn)
    方法可用于任何jQuery集合,并将函数
    fn
    与元素的数字索引同步应用于集合的每个元素

    因此,您的代码显示:

  • 使用
    管理价格
    类获取所有元素
  • 对于每个元素:将全局变量
    thePrice
    设置为元素的内部文本
  • 循环完成后:将全局变量
    thePrice
    设置为缺少最后5个字符的子字符串
  • 第2步重复地重击要设置全局变量的值,以便只保留最后一个值。您给出的代码片段本身不做任何其他事情;它只是敲打一个全局变量,您可以稍后在
    窗口中看到该变量。价格
    (在浏览器上)

    相反,你可能想要这个:

  • 使用
    管理价格
    类获取所有元素
  • 对于每一项:
    • 获取当前文本
    • 删掉那段文字
    • 将当前文本设置为上述截断
  • 因此,功能(封装步骤2)需要:

    function () { 
        var el = $(this);
        el.text( // setter
            el.text() // getter
              .slice(0, -5) // truncation
        );
    }
    

    这定义了一个局部变量
    el
    ,它保存了
    $(This)
    ,因此jQuery不需要构建两个单元素集合,只需将其中一个作为getter和setter重用;如果需要,也可以只编写一行程序
    函数(){$(this).text($(this).text().slice(0,-5))}
    ,而不存储此变量。

    请发布完整的代码示例。这里我们至少也需要HTML。另外,您发布的最后一行不应该在each函数中吗?您正在循环外部设置价格,您每次都在分配变量。它将只包含最后一个值。因此,如果您有3,
    价格将仅为第三个对象的文本。请发布完整的代码示例。这里我们至少也需要HTML。另外,您发布的最后一行不应该在each函数中吗?您正在循环外部设置价格,您每次都在分配变量。它将只包含最后一个值。因此,如果您有3,
    价格将仅为第三个对象的文本。哦,是的,忘记了回调方法!:)没问题,很乐意帮忙。别忘了接受答案。哦,是的,忘了回调方法!:)没问题,很乐意帮忙。别忘了接受答案。