我有一个链接列表,其中一些可能是重复的href,但链接文本本身已经略有编辑。
在那一刻,为了摆脱我一直在使用此代码的重复项。
var seen = {};
$('.sortable li div a').each(function() {
var txt = $(this).text();
var linkTxt = $(this).attr("href");
if (seen[linkTxt]){
$(this).parent().parent().remove();
var sortableList = $(".sortable").html();
$("#ItemDescription").val(sortableList);
}else{
seen[linkTxt] = true;
$(".sortable li div").each(function(){
var selectLength = $(this).find("input").length;
if(selectLength == 0){
$("<input type='checkbox' name='selected' class='select'/>").appendTo(this);
}
});
这段代码只是将其删除,我需要代码将顶部的linkText替换为更接近底部的linkText(最新版本),然后将其删除,但仅限于href的匹配。
任何想法?
我的列表看起来像这样
<ol class="sortable ui-sortable" style="float:right;"><li class="menu-item">
<div class="">Allure<input type="checkbox" name="selected" class="x_x_x_select"></div>
<ol class="">
<li style="display: list-item;" class="">
<div class=""><a href="/portfolios/energy-drink" class="" name="">Energy-Drink</a><input type="checkbox" name="selected" class="x_x_select"></div>
</li>
</ol>
</li>
<li class="menu-item">
<div class="">Avon<input type="checkbox" name="selected" class="x_x_x_select"></div>
</li>
<li class="menu-item">
<div class="">Bitten SJP<input type="checkbox" name="selected" class="x_x_x_select"></div>
</li>
<li style="display: list-item;" class="">
<div class=""><a href="/portfolios/energy-drink" class="" name="">Allure-Energy-Drink</a><input type="checkbox" name="selected" class="x_x_select"></div>
</li>
</ol>
答案 0 :(得分:0)
如果我理解你,你想从底部拿走这个项目,在顶部搜索一个相应的项目,替换那个文本并从底部删除该元素。
var changed = true;
while(changed) {
changed = false;
$('.sortable li div a').each(function() {
var all = $('.sortable li div a[href=' + $(this).attr('href') + ']');
if(all.length > 1) {
all.first().text(all.last().text());
all.slice(1).remove();
changed = true;
return false;
}
});
}