我动态创建了这个unordered list
,并希望在无序列表的list元素中获取link元素的data-name属性值,将其与resoponse对象的数组值进行比较,然后删除整个如果它不在数组中,它所在的list元素,否则重命名它。
<ul id="hithere"class="image-list">
<li class='image-list'>
<div class='controls'>
<a href='#' class='image-list' data-name='myname'><img src='stop.png' ></a>
</div>
<span class='name'>myname12</span
</li>
<li class='image-list'>
<div class='controls'>
<a href='#' class='image-list' data-name='myname2'><img src='stop.png' ></a>
</div>
<span class='name'>myname1312</span
</li>
</ul>
这是我的jQuery,其中iam将所有列表元素与数组cookedJSON进行比较并更改数据名属性,如果它在数组中为“uname”;这是在array.if它不是,然后我删除链接所在的列表。
function work(i,fly,response){
cookedJSON=[];cookedJSON.push({ uname : response.uname , Oname : response.Oname });
$("li.image-list").each(cookedJSON, function(i,arr) {
if($(this).find('a[data-name]').attr('data-name')== arr.Oname){
$(this).attr('data-name')==arr.uname ;}else{$(this).detach();}
});
它没有将数据名称更改为新值,也没有删除。为什么?我希望它重命名并删除它 特定的列表元素,其余部分保持不变。
答案 0 :(得分:0)
你混合了两个循环语句,即
$.each(arr,function(key,value)
{
// accessing array element
});
and
$('#selector').each(function(index)
{
// accessing DOM element
});
根据您的要求进行调整。但是不需要嵌套循环。
这样就可以了解
$('#selector').each(function(index)
{
cookedJSON[index].Oname;
});