Javascript 数组处理,Firefox 和 Chrome 之间的差异
Javascript array handling, differences between Firefox and Chrome
我遇到了 Firefox 和 Chrome 在解释数组时表现不同的问题。
该数组是从一个 select 元素生成的,该元素可以有多个选项。
var asset = {};
var fCategories = []; //List of category values
$('#selectCategory option:selected').each(function() {
fCategories.push($(this).val());
});
if (fCategories.length === 1 && fCategories[0] != "null") {
asset.Asset_Category_id = fCategories[0];
}
if (fCategories.length > 1) {
asset.category_list = fCategories.join(",");
}
console.log(asset);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="selectCategory" multiple="multiple">
<option value="null">Filter Category</option>
<option selected value="3">Arc Welder</option>
<option selected value="4">Bench Grinder.</option>
<option value="41">cables</option>
</select>
生成的资产类别 ID 或类别列表用作调用 Web 服务的参数。
以下结果针对单个选项 selected 和两个选项 selected.
Firefox 提供:
details: {"Asset_Category_id":"4"}
或 details: {"category_list":"3,4"}
Chrome 给出:
details: {"Asset_Category_id":["3"]}
或 details: {"Asset_Category_id":["3","4"]}
这是不对的。
浏览器版本是
火狐 70.0.1(64 位)
Chrome 版本 78.0.3904.97(正式版)(64 位)
我曾希望在键入此代码时发现代码问题,但没有成功,所以我非常感谢 Whosebug 社区的意见。
我已经解决了这个问题。问题是 Chrome 缓存了 javascript 代码的过时版本。
我不是普通 Chrome 用户,我不知道 f5 刷新不会重新加载代码。
我遇到了 Firefox 和 Chrome 在解释数组时表现不同的问题。 该数组是从一个 select 元素生成的,该元素可以有多个选项。
var asset = {};
var fCategories = []; //List of category values
$('#selectCategory option:selected').each(function() {
fCategories.push($(this).val());
});
if (fCategories.length === 1 && fCategories[0] != "null") {
asset.Asset_Category_id = fCategories[0];
}
if (fCategories.length > 1) {
asset.category_list = fCategories.join(",");
}
console.log(asset);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="selectCategory" multiple="multiple">
<option value="null">Filter Category</option>
<option selected value="3">Arc Welder</option>
<option selected value="4">Bench Grinder.</option>
<option value="41">cables</option>
</select>
生成的资产类别 ID 或类别列表用作调用 Web 服务的参数。 以下结果针对单个选项 selected 和两个选项 selected.
Firefox 提供:
details: {"Asset_Category_id":"4"}
或 details: {"category_list":"3,4"}
Chrome 给出:
details: {"Asset_Category_id":["3"]}
或 details: {"Asset_Category_id":["3","4"]}
这是不对的。
浏览器版本是 火狐 70.0.1(64 位) Chrome 版本 78.0.3904.97(正式版)(64 位)
我曾希望在键入此代码时发现代码问题,但没有成功,所以我非常感谢 Whosebug 社区的意见。
我已经解决了这个问题。问题是 Chrome 缓存了 javascript 代码的过时版本。 我不是普通 Chrome 用户,我不知道 f5 刷新不会重新加载代码。