Jquery 拆下一个';变量';数组中的元素
我有一个具有愿望列表功能的网店。通过单击产品旁边的一个小按钮,它们将保存在会话中,并且可以在愿望列表页面上查看产品 在愿望列表页面上,可以单击相同类型的按钮,从愿望列表中删除产品。但是,它不会删除特定产品,而是从列表/阵列中删除前1/2个产品 以下是当前代码:Jquery 拆下一个';变量';数组中的元素,jquery,arrays,Jquery,Arrays,我有一个具有愿望列表功能的网店。通过单击产品旁边的一个小按钮,它们将保存在会话中,并且可以在愿望列表页面上查看产品 在愿望列表页面上,可以单击相同类型的按钮,从愿望列表中删除产品。但是,它不会删除特定产品,而是从列表/阵列中删除前1/2个产品 以下是当前代码: jQuery(document).ready(function() { var x; var y; function setPosition() { x = jQuery('.navbar-right li.wishlist i
jQuery(document).ready(function() {
var x;
var y;
function setPosition() {
x = jQuery('.navbar-right li.wishlist img').offset().left;
y = jQuery('.navbar-right li.wishlist img').offset().top;
}
setPosition();
jQuery(window).resize(setPosition);
jQuery('img.add-to-wishist').click(function(event) {
event.preventDefault();
var wensenlijst = Cookies.get('wensenlijst');
if (wensenlijst === null || wensenlijst === "" || wensenlijst === undefined || wensenlijst === "null" ) {
var temp = [];
wensenlijst = temp;
}
else {
wensenlijst = JSON.parse(wensenlijst);
}
var id = jQuery(this).attr('attr-id');
if( !jQuery(this).hasClass('done') ) {
jQuery(this).addClass('done');
var mysrc = jQuery(this).attr('src');
var newsrc = mysrc.replace('likeitem.png', 'liked.png');
jQuery(this).attr( 'src', newsrc);
var clone = jQuery(this).clone().addClass('clonedHeart').insertAfter('img.add-to-wishist');
var eOffset = jQuery(this).offset().top; //get the offset top of the element
var eLeft = jQuery(this).offset().left;
var eTop = eOffset - jQuery(window).scrollTop(); //position of the ele w.r.t window
clone.css('z-index','10000')
.css('top', eTop)
.css('left', eLeft)
.css('position', 'fixed')
.animate({
left: x,
top: y,
}, 1500);
clone.queue(function() {
jQuery(this).remove();
var counter = jQuery('#wishlistcount');
var currentcount = wensenlijst.length;
counter.html( currentcount );
counter.addClass('itemAdded');
setTimeout(function(){
counter.removeClass('itemAdded');}, 2000);
jQuery(this).dequeue();
});
wensenlijst.push(id);
}
else {
jQuery(this).removeClass('done');
var currentcount = jQuery('#wishlistcount').html();
jQuery('#wishlistcount').html( parseInt(currentcount) - 1 );
var mysrc = jQuery(this).attr('src');
var newsrc = mysrc.replace('liked.png', 'likeitem.png');
jQuery(this).attr( 'src', newsrc);
var i = wensenlijst.indexOf(id);
if (wensenlijst.length === 1) {
wensenlijst = [];
}
else {
wensenlijst = wensenlijst.splice(i);
}
if( jQuery('body').hasClass('page-template-template-wensenlijst') ){
jQuery.when(Cookies.set('wensenlijst', wensenlijst, { expires: 7 })).done(function() {
location.reload();
});
}
}
Cookies.set('wensenlijst', wensenlijst, { expires: 7 });
});});
我发现我拼接阵列的方式是错误的,但我不知道如何正确拼接。我所看到的大多数信息都与数组中需要删除的特定内容有关,而不是在变量设置中
这是一个按钮的片段:
<div class="save"><a href="#"><img src="image/src" attr-id="4737" class="like-item add-to-wishist" alt="add to wishlist"></a><p>Bewaren</p></div>
贝瓦伦
需要第二个参数来调用slice()函数并删除赋值 而不是
wensenlijst = wensenlijst.splice(i);
只写
wensenlijst.splice(i, 1);
你能不能说一下按钮代码?好的。把它添加到问题中!谢谢你的建议。如果我这样做,新阵列将成为我试图删除的产品,再加上它旁边的一个产品。再次感谢您的快速回答。这次它只返回我试图删除的产品,其他什么都没有!是的,你需要删除任务。slice()返回要删除的元素。你只需要原始阵列中剩下的东西。太棒了!!谢谢。看来这已经解决了!