如何比较<;的所有ID;李>;使用javascript或jquery数组?
我有一个如下所示的数组:如何比较<;的所有ID;李>;使用javascript或jquery数组?,javascript,jquery,html,arrays,Javascript,Jquery,Html,Arrays,我有一个如下所示的数组: aVN = new Array(); aVN.push(new Array('CET', 'July', 'Birthday', '20110704')); aVN.push(new Array('CGT', 'July', 'Anniversary', '20110705')); 我的html中还有多个元素,如下所示: <li id="thismonth"> <ul> <li id="20110701">1
aVN = new Array();
aVN.push(new Array('CET', 'July', 'Birthday', '20110704'));
aVN.push(new Array('CGT', 'July', 'Anniversary', '20110705'));
我的html中还有多个
元素,如下所示:
<li id="thismonth">
<ul>
<li id="20110701">1</li>
<li id="20110702">2</li>
<li id="20110703">3</li>
<li id="20110704" onclick="displayevent();" class="holiday">4</li>
<li id="20110705">5</li>
</ul>
- 1
- 2
- 3
- 4
- 5
我想检查
的ID中是否存在来自数组aVN
的20110704
如果ID和数组值匹配,那么当我单击特定的
时,我想显示“生日”(数组中的文本)
aVN = new Array();
aVN.push(new Array('CET', 'July','Birthday', '20110704'));
aVN.push(new Array('CGT', 'July','Anniversary', '20110705'));
for(var i = 0;i<avN.length;i++){
if($("#"+avN[i][3]).length){
$("#"+avN[i][3]).click(function(){
alert(avN[i][2]);
}
}
}
aVN=newarray();
aVN.push(新数组(“CET”、“七月”、“生日”、“20110704”);
aVN.push(新阵列(“CGT”、“七月”、“周年”、“20110705”);
对于(变量i=0;i
var aVN=[
[“CET”、“七月”、“生日”、“20110704”],
['CGT'、'七月'、'周年'、'20110705']
];
函数displayEvent(text){//我不确定您想在这里做什么
console.log(文本);
}
$(函数(){
$('li.menu')。单击(函数(){
对于(变量i=0;i
1
2
3
4
5
(感谢Damon指出id不能以数字字符开头。)更多的“jquerysh”方法是使用公共前缀和唯一后缀(.allineed-1、.allineed-2等)设置一些类,然后使用适当的css选择器-$(document.body)查找内容。查找(.allineed-“+id)
。不过,如果您坚持,也可以用同样的方法使用ID
此外,不确定,但看起来您最好保留一个散列而不是数组,因为ID是唯一的(如果我们不关心排序的话)。执行反向操作(映射某些数据的lis)会更容易一些。请记住,还有一些“jquerysh”方法——使用数据将dom对象与某些数据关联)))因此,您基本上希望获取所有
元素,循环遍历每个元素并检查其id
以查看其是否匹配条件,然后对匹配的元素执行某些操作?元素id不能以数字开头。它们必须以字母开头。@HTML5中的damon,这个限制被取消了。@Matt:太好了;但这并不意味着我们应该开始用严格的数字ID来堆积代码。不只是现在。你有语法错误,而且你使用了一种糟糕的创建数组的方法。这就是我想要做的…我已经做了一个日历…每天都由组成…就像上面的例子…现在我的主要目标是检查数组中的日期是否匹配 的日期id…如果匹配(例如如果“20110705”从阵列匹配id为“menu_20110705”)的 然后该 的颜色应该改变,数组中的其他数据,即:生日应该显示在鼠标上方这是我想做的…我已经制作了一个日历…每天都由 组成…就像上面的例子…现在我的主要目的是检查数组中的日期是否与 的日期id匹配…如果匹配(例如如果数组中的“20110705”与id为“menu\u 20110705”的 匹配然后 的颜色应该改变,数组中的其他数据,例如:生日应该显示在鼠标上这在HTML5中是不正确的。@马特:不是每个人都在使用HTML5。嗯,这里的闭包有一个问题。通过反转查找来修复它。这是我想做的…我制作了一个日历。 的每一天都是由 组成的。。。像上面的例子一样…现在我的主要目的是检查数组中的日期是否与 的日期id匹配…如果匹配(例如,如果数组中的“20110705”与id为“menu\u 20110705”的 匹配)然后,该 的颜色应该改变,数组中的其他数据,即:生日应该显示在鼠标上。您为什么会使用$(document.body)。查找(“.allineed-”+id)
而不是$(“.allineed-”+id)
?@Matt Ball-只是为了说明我们可以传递上下文。这是我想要做的…我制作了一个日历…每天都由 组成…就像上面的例子…现在我的主要目的是检查数组中的日期是否匹配 的日期id…如果匹配(例如,如果数组中的“20110705”与 的id匹配)菜单_20110705“),则该 的颜色应改变,并且阵列中的其他数据(即:生日)应显示在鼠标上方
<script type="text/javascript">
var aVN = [
['CET', 'July', 'Birthday', '20110704'],
['CGT', 'July', 'Anniversary', '20110705']
];
function displayEvent(text) { // I'm not sure what you wanted to do here
console.log(text);
}
$(function() {
$('li.menu').click(function() {
for (var i = 0; i < aVN.length; i++) {
if (this.id == 'menu_' + aVN[i][3]) {
displayEvent(aVN[i][2]);
}
}
}).css({cursor: 'pointer'});
});
</script>
<ul>
<li class="menu" id="menu_20110701">1</li>
<li class="menu" id="menu_20110702">2</li>
<li class="menu" id="menu_20110703">3</li>
<li class="menu" id="menu_20110704">4</li>
<li class="menu" id="menu_20110705">5</li>
</ul>