使用.html时出现奇怪的对象预期错误

时间:2011-03-24 10:22:45

标签: jquery

这一切似乎工作得很好只是真正奇怪的是当我尝试用.html('g'+ index)引用var时它会抛出一个对象预期的错误。我猜测构建var不是最好的事情吗?

var g0 = "<?php getFiles("gallery/Audience"); ?>";
var g1 = "<?php getFiles("gallery/Exhibition"); ?>";
var g2 = "<?php getFiles("gallery/registration"); ?>";
var g3 = "<?php getFiles("gallery/Speakers"); ?>";

$(".galleryButton").each(function (index) {
    $(this).click(function(){
        $('#galleria').html();                              
        $('#galleria').html('g'+index);
        initiateGallery();
    }).mouseover(function() {
        $(this).css('cursor', 'pointer');
        $(this).css('backgroundColor', '#002E53');
    }).mouseout(function(){
        $(this).css('backgroundColor', '#000');
    });
});

3 个答案:

答案 0 :(得分:1)

您可以使用eval获取变量gx的值。

$(this).click(function(){
    $('#galleria').html();                              
    $('#galleria').html(eval('g'+index));
    initiateGallery();
})

但由于eval是邪恶的,你应该使用switch-case来获取变量:

$(this).click(function(){
    $('#galleria').html();
    var contents;
    switch(index) {
        case 1:
            contents = g1;
            break;
        case 2:
            contents = g2;
        ...
    }
    $('#galleria').html(contents);
    initiateGallery();
})

我想你正试图用这一行清除#galleria的html:

$('#galleria').html();

您应该将空字符串传递给html()以清除内容:

$('#galleria').html('');

答案 1 :(得分:0)

如果您想将文本字符串'g'+index插入HTML,我可能会建议您这样做...

$('#galleria').html('<span>g'+index+'</span>');

答案 2 :(得分:0)

您应该使用eval方法:     $( '#拱廊')的HTML(EVAL( 'G' +索引));