几个月来,我一直在努力解决这个问题。是否可以将“或”运算符应用到下面的数组结构中?
基础:如果下拉列表中的值与数组中的值匹配,则相应的ID将发送到一个函数中,并执行其他一些操作,但我无法添加/包含或运算符。
例如,我希望能够在代码中说:
{id : '418', value: 'Brochure' || 'Broc'},
{id : '546', value: 'Classified Ad' || 'CA' || 'Class Ad'},但是上面的方法从来都不起作用,所以我不知道它是不能完成,还是语法错误。
任何洞察力都将不胜感激。
一旦找到值就运行的函数,
var projectTypes = [{
"id": "418",
"value": ["Brochure", "Broc"]
}, {
"id": "546",
"value": ["Classified Ad", "CA", "Class Ad"]
}, {
"id": "254",
"value": ["Flyer", "Flyers"]
}, {
"id": "855",
"value": "Post Card"
}];
function projectTypeChange() {
var project_type = document.getElementById(projectType_Field_Id).value;
SwitchBox(project_type);
}
function SwitchBox(selectedType) {
for (var i = 0; i < projectTypes.length; i++) {
if (projectTypes[i].value.indexOf(projectTypes) >= 0)
//if (projectTypes[i].value == selectedType)
{
document.getElementById("section-" + projectTypes[i].id).style.display = '';
} else {
document.getElementById("section-" + projectTypes[i].id).style.display = 'none';
}
}
}发布于 2012-07-26 00:41:50
照贾斯汀的建议去做。在代码索引中更改这一行:
if(projectTypes[i].value.indexOf(projectTypes) >= 0)对此:
if(projectTypes[i].value.indexOf(selectedType) >= 0)发布于 2012-07-25 13:59:04
与其尝试使用欧元运算符(在本例中是不正确的),不如将值设置为自己的数组:
{ id: '418', value: ['Brochure','Broc'] },
{ id: '546', value: ['Classified Ad','CA','Class Ad'] }然后,检查indexOf,看看该值是否在数组中,而不是检查值是否相等:
if(value.indexOf(someVal) >= 0)
{
// someVal was found in the value array...do the work!
}https://stackoverflow.com/questions/11651343
复制相似问题