簡體   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