Javascript 尽管Chrome开发工具控制台验证,jQuery slice()仍不工作

Javascript 尽管Chrome开发工具控制台验证,jQuery slice()仍不工作,javascript,jquery,Javascript,Jquery,这是一个非常奇怪和简单的问题,我已经坚持了很久,远远超过我愿意承认!我的slice()函数不再工作了。我已经检查了10亿次语法。它似乎在某一点上起了作用,这是最复杂的事实 jQuery(document).ready(function($){ jQuery("h2.page_title").css('background','lime'); jQuery("h2.page_title").text().slice(2); }); 文件和函数运行良好,因此背景为石灰色。但是,sli

这是一个非常奇怪和简单的问题,我已经坚持了很久,远远超过我愿意承认!我的slice()函数不再工作了。我已经检查了10亿次语法。它似乎在某一点上起了作用,这是最复杂的事实

jQuery(document).ready(function($){
   jQuery("h2.page_title").css('background','lime');
   jQuery("h2.page_title").text().slice(2);
});


文件和函数运行良好,因此背景为石灰色。但是,slice()将无法工作,甚至无法通过我的控制台进行更新。我将DOM中的哪个元素作为目标并不重要。我已经清除了缓存,重新启动了所有WAMP服务,等等。我知道真正的解决方案是非常愚蠢的,所以如果您有任何关于可能导致这种情况的提示,我们将不胜感激。

当使用
切片时,原始字符串不会更改。它只返回切片字符串。你应该自己做这件事-

var str = jQuery("h2.page_title").text().slice(2);
jQuery("h2.page_title").text(str);
或在一排—


jQuery(“h2.page_title”).text(jQuery(“h2.page_title”).text().slice(2))

如果要对前2个字符进行切片,可以使用它返回结果。这还将循环任何选择器,并对所有选择器执行特定于实例的切片

jQuery(“h2.页面标题”)
.css('background','lame')
.text(函数(\ux,currTxt){
返回currTxt.slice(2);
});

第一标题

第二个标题
在我看来,jQuery
slice()
实际上是一个误导性的名称,这会导致混淆,因为它与本机JavaScript slice(这里使用的字符串)并不完全相同。jQuery切片返回jQuery对象,而不是字符串

jQuery
.slice()
属于“遍历和过滤”类别

“将匹配元素集减少到由范围指定的子集 指数的变化。”

jQuery切片:

另一方面,本机字符串JavaScript
.slice()
返回一个字符串

“…提取字符串的一部分并将其作为新字符串返回, 不修改原始字符串。“

因此,为了解决您的具体问题,
返回一个从文本索引2开始的字符串-您对该字符串不做任何处理。

您没有使用jQuery slice(),因为
text()
返回字符串。您正在使用本机
String#slice()
。你想完成什么?你期望的输出是什么?charlietfl,当它工作时,我在元素上使用了.slice(),没有.text()。。。然而,这两种方式都不起作用@AnkitAgarwal,本例中的预期输出是控制台中显示的输出。仍然无法解释您想要实现的目标。因为他试图切分一个单词,如控制台中所示。如果不清楚,很抱歉。
.slice()
返回“jQuery”,因此
str
这里是一个jQuery对象,而不是文本对象。请澄清这是一个字符串切片而不是jQuery切片。非常感谢。我知道我错过了一些愚蠢的东西。我不知道slice没有更改字符串。。。只是一个变量。@markschultheis他正在对字符串使用slice方法。因此,他没有使用jQuery slice方法。@nicolascolman-是的,也许我的草率评论没有很好地表达出来,但我同意这不是jQuery
slice()
。谢谢你的解释。完全同意,我明白我的困惑所在了。
jQuery("h2.page_title").text().slice(2);