繁体   English   中英

尽管Chrome Dev Tools控制台验证,jQuery slice()仍无法正常工作

[英]jQuery slice() Not Working Despite Chrome Dev Tools Console Verification

这是一个非常奇怪和简单的问题,我现在对FAR的关注时间比我承认的要长! 我的slice()函数不再起作用了。 我已经检查了十亿次语法。 它似乎一直在努力,这是最复杂的事实。

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

在此输入图像描述

文件和功能运行正常,因此石灰背景。 但是,slice()将无法工作,甚至无法通过我的控制台进行更新。 我在DOM中定位的元素无关紧要。 我已经清除了缓存,重新启动了所有WAMP服务等等。我知道真正的解决方案是非常愚蠢的,所以如果你有什么可能导致这个的提示,那将非常感激。

使用slice ,原始字符串不会更改。 它只返回切片的字符串。 你应该自己做分配 -

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));

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

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

“将匹配元素集合减少到由一系列索引指定的子集。”

jQuery切片: https//api.jquery.com/slice/

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

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

所以,要解决你的具体细节,

jQuery("h2.page_title").text().slice(2);

返回从文本的索引2开始的字符串 - 您不对该字符串执行任何操作。

如果要切片前2个字符可以使用text(function)返回结果。 这也将遍历任何选择器并为所有选择器执行特定于实例的切片

 jQuery("h2.page_title") .css('background','lime') .text(function(_, currTxt) { return currTxt.slice(2); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <h2 class="page_title">First heading</h2> <h2 class="page_title">Second heading</h2> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM