標題重寫:強調頁面上特定值的技術
P粉588152636
2023-09-05 09:37:49
<p>例如,在這樣的網站上</p>
<p>我如何編碼才能在產品網格中突出顯示任何高於 20 歐元的紅色價格?另外,即使用戶選擇/取消選擇右側的類別,我也需要它繼續工作。 </p>
<p>這是 JavaScript 嗎? </p>
<pre class="brush:php;toolbar:false;">$('div').each(function() {
$(this).find('.mErEH _223RA').sort(function(a, b) {
return b.innerText - a.innerText;
}).slice(0, 5).addClass('higherthan20')
});</pre>
<pre class="brush:php;toolbar:false;">.higherthan20 {
color: red;
}</pre></p>
引用的網站透過僅顯示符合使用者定義範圍的價格來過濾價格,同時刪除任何不在價格範圍內的價格。您要求的篩選器僅突出顯示超過 20 的任何內容。此外,第二個請求:
無法回答,因為您尚未發布任何涉及任何其他過濾器的程式碼。
關於發布的程式碼,它不僅在語法上失敗,而且在目的上也失敗。
jQuery 方法無法辨識純 JavaScript 引用,反之亦然。為了在 jQuery 物件上使用純 JavaScript 方法, jQuery 物件必須取消引用。避免連結 jQuery 和 JavaScript 方法。以下是問題中使用的 jQuery 方法表和純 JavaScript 方法表:
jQuery 方法
純 JavaScript 方法
簡而言之,由
div.mErEH _223RA
組成的jQuery物件是透過.each()
和.find()
創建的程式碼>.然後,當在所述jQuery 物件上呼叫.sort()
時,函數會失敗,因為:.sort()
是一個普通的 JavaScript 方法,無法辨識 jQuery 物件.sort()
處理數組,而 jQuery 物件則不然如果函數完全放棄jQuery,只收集所有
div.mErEH _223RA
作為NodeList,然後轉換為數組,.sort()
和.slice ()
可以工作。不幸的是,傳回的新數組由按升序排列的前 6 個 DOM 元素組成,這甚至無法突出顯示超過 20 個的所有 DOM 元素。在以下範例中,實際的 HTML 佈局無關緊要,className
".x"
應替換為".mErEH _223RA"
。範例中註解了詳細資訊