Rumah > Soal Jawab > teks badan
Saya memaparkan struktur navigasi yang dijana secara dinamik. Setiap lokasi mempunyai jenis kedai yang dijana daripada kedai lokasi tersebut.
Saya perlu mengalih keluar pendua untuk setiap lokasi supaya barangan runcit boleh muncul di kedua-dua lokasi. Saya mencuba penyelesaian jquery biasa di bawah yang mengalih keluar pendua tetapi ia menyebabkan setiap storetype muncul di satu lokasi sahaja.
var seen = {}; $("ul#storetypes").find("li").each(function(index, html_obj) { txt = $(this).text().toLowerCase(); if (seen[txt]) { $(this).remove(); } else { seen[txt] = true; } });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <ul class="menu"> <li>Location 1 <ul id="storetypes" class="sub-menu"> <li>groceries</li> <li>cakes</li> <li>motor spares</li> <li>groceries</li> </ul> </li> <li>Location 2 <ul class="sub-menu"> <li>groceries</li> <li>motor spares</li> <li>motor spares</li> <li>groceries</li> </ul> </li> </ul>
P粉4329068802024-03-30 13:11:38
Anda boleh melakukan ini:
$("ul.sub-menu li").each(function(index, html_obj) { if ($(this).prevAll(":contains(" + $(this).text() + ")").length > 0) { $(this).remove(); } });
Ini akan melihat setiap .sub-menu
dan lihat jika terdapat "li" dengan teks yang sama, dan alih keluar pendua.
Demo
$("ul.sub-menu li").each(function(index, html_obj) {
if ($(this).prevAll(":contains(" + $(this).text() + ")").length > 0) {
$(this).remove();
}
});
sssccc