这是一个非常奇怪和简单的问题,对于FAR,我现在停留的时间比我想承认的还要长!我的slice()函数不再起作用。我已经检查了十亿次语法。这似乎一直在起作用,这是最复杂的事实。
jQuery(document).ready(function($){
jQuery("h2.page_title").css('background','lime');
jQuery("h2.page_title").text().slice(2);
});
文件和功能运行良好,因此背景为石灰。但是,slice()将不起作用,甚至无法通过我的控制台进行更新。我在DOM中定位哪个元素都没有关系。我已经清除了缓存,重新启动了所有WAMP服务,等等。我知道真正的解决方案非常愚蠢,因此,如果您对导致此问题的技巧有任何建议,将不胜感激。
答案 0 :(得分:2)
使用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));
答案 1 :(得分:1)
在我的拙见中,jQuery slice()
实际上是一个令人误解的名称,会引起混淆,因为它与本机JavaScript slice(对于在此处使用的字符串)并不完全相同。 jQuery slice返回一个jQuery对象,而不是字符串。
jQuery .slice()
属于“ Traversing and Filtering”类别。
“将匹配的元素集减少为范围指定的子集 索引。”
jQuery slice:https://api.jquery.com/slice/
原生字符串JavaScript .slice()
返回字符串
“ ...提取字符串的一部分并将其作为新字符串返回, 而不修改原始字符串。”
jQuery("h2.page_title").text().slice(2);
返回从文本索引2开始的字符串-您对该字符串不执行任何操作。
答案 2 :(得分:0)
如果要切片前两个字符,可以使用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>