我有一个如下数组:
aVN = new Array();
aVN.push(new Array('CET', 'July', 'Birthday', '20110704'));
aVN.push(new Array('CGT', 'July', 'Anniversary', '20110705'));
我的html中还有多个<li>
元素,如下所示:
<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>
我想检查数组20110704
中的aVN
是否出现在<li>
的ID中。
如果ID和数组值匹配,那么当我点击该<li>
时,我想显示“Birthday”(数组中的文本)。
答案 0 :(得分:1)
<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>
(感谢Damon指出ID可能不是以数字字符开头。)
答案 1 :(得分:0)
试试这个
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]);
}
}
}
答案 2 :(得分:0)
更多“jquerysh”方法将设置一些具有公共前缀和唯一后缀(.allineed-1,.allineed-2等)的类,然后使用适当的css选择器$(document.body).find(".allineed-" + id)
查找内容。不过,如果你坚持,你可以用同样的方式使用id。
此外,不确定,但看起来你最好保留哈希而不是数组,因为ids是唯一的(如果我们不关心排序)。执行反向操作会更容易 - 为某些数据映射lis。请记住,再次,还有一些“jquerysh”方法 - 使用数据将dom对象与一些,好的数据相关联)))