gpt4 book ai didi

javascript - Push 替换数组中的旧值

转载 作者:行者123 更新时间:2023-12-02 14:47:48 26 4
gpt4 key购买 nike

也许是因为我工作了一整天,我看不到问题所在。但在下面的代码中,警报仅显示最后添加的值,并且不会将值推送到数组中。 :(

window.sortControl = {
sortControlPanel: $('div.sortControl'),
simpleSortCriteriaList: $('div.sortControl .simple'),
advancedSortCriteriaList: $('div.sortControl .advanced'),
dropDownExpander: $('div.sortControl .dropDownExpand.primary'),
dropDownContent: $('div.sortControl .dropdownContent.primary'),
simpleSortCriteria: $('div.sortControl .sortcriteria.simple a'),
simpleSortCheckboxes: $('.simple .checkbox'),
openAdvancedButton: $('.openAdvanced'),
backtoSimpleButton: $('.backtoSimple'),
advancedDropdownContent: $('div.sortControl .advanced .dropdownContent'),
advancedDropdownExpander: $('div.sortControl .advanced .dropDownExpand')
};

$.each(sortControl.advancedDropdownContent.parent(), function () {

var dropdownContent = $(this).find('.dropdownContent');
var input = $(this).find('input');

$(this).find('.dropDownExpand').live('click', function (event) {
sortControl.advancedDropdownContent.not(dropdownContent).hide('fast');
dropdownContent.toggle('fast');
event.preventDefault();
});

var currentSelectedGroups = [];

$(this).find('li a').bind('click', function (event) {

var criteria = $(this).text();
//if (!currentSelectedGroups.inArray($(this).attr('class'), true)) {
input.attr('value', criteria);
currentSelectedGroups.push($(this).attr('class'));

//}

dropdownContent.toggle('fast');

event.preventDefault();
alert(currentSelectedGroups);
});

});

一些html:

<div class='sortcriteria advanced'>

<label>Sort by: </label>
<div class='controlWrapper'>
<input type="text" placeholder='Any' value='Any' class='dropDownExpand'>
<span class='icon dropDownExpand' title='Select property type'></span>
<ul class='dropdownContent'>
<li><a href='#' class='price'>Price ascending</a></li>
<li><a href='#' class='price'>Price descending</a></li>
<li><a href='#' class='party'>Party size ascending</a></li>
<li><a href='#' class='party'>Party size descending</a></li>
<li><a href='#' class='bedrooms'>Number of bedrooms ascending</a></li>
<li><a href='#' class='bedrooms'>Number of bedrooms descending</a></li>
<li><a href='#' class='star'>Star rating ascending</a></li>
<li><a href='#' class='star'>Star rating descending</a></li>
</ul>
</div> ...
  1. 没有 JavaScript 错误。
  2. 内容和此脚本通过 ajax 加载
  3. 所有其他语句都执行其应有的操作

最佳答案

您需要将 var currentSelectedGroups = []; 移到每个循环之外。您为每个实例声明一次 - 它们都在自己的变量版本上工作,因为它位于每个函数的本地范围内。

记住 JavaScript 中的函数 = 作用域

关于javascript - Push 替换数组中的旧值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7522385/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com