Javascript 尽管Chrome开发工具控制台验证,jQuery slice()仍不工作
这是一个非常奇怪和简单的问题,我已经坚持了很久,远远超过我愿意承认!我的slice()函数不再工作了。我已经检查了10亿次语法。它似乎在某一点上起了作用,这是最复杂的事实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
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);
});代码>
第一标题
第二个标题
在我看来,jQueryslice()
实际上是一个误导性的名称,这会导致混淆,因为它与本机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-是的,也许我的草率评论没有很好地表达出来,但我同意这不是jQueryslice()
。谢谢你的解释。完全同意,我明白我的困惑所在了。
jQuery("h2.page_title").text().slice(2);