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,价格将仅为第三个对象的文本。哦,是的,忘记了回调方法!:)没问题,很乐意帮忙。别忘了接受答案。哦,是的,忘了回调方法!:)没问题,很乐意帮忙。别忘了接受答案。