Javascript错误:缺少:属性ID后?

时间:2011-07-15 18:53:34

标签: javascript jquery

以下是代码:

window.onload({
    var Country = '<?= $core->HotelData($hid, "country"); ?>';
    var options = document.getElementsByTagName('option');
    for (var i = 0; i < inputs.length; i ++) {
        if (options[i].type == 'option' && options[i].value == Country) {
            options[i].attr('selected','selected');
        }
    }
});

我一直在努力工作几个小时,并且认为如果我向专家寻求建议会更好。

更新:来源

window.onload({
    var Country = 'United Kingdom';
    var options = document.getElementsByTagName('option');
    for (var i = 0; i < inputs.length; i ++) {
        if (options[i].type == 'option' && options[i].value == Country) {
            options[i].attr('selected','selected');
        }
    }
});

更新#2:修复 问题的原因主要是我的愚蠢.. ktnxbai

function OnLoad() {
    var Country = "<?= $core->HotelData($hid, "country"); ?>";
    var options = document.getElementsByTagName('option');
    for (var i = 0; i < options.length; i ++) {
        if (options[i].value == Country) {
            options[i].selected = true;
        }
    }
}

window.onload = OnLoad();

6 个答案:

答案 0 :(得分:4)

你可能想写:

window.onload = function() {
  ...
};

答案 1 :(得分:2)

以下是修复错误的方法:

window.onload(function(){
    var Country = '<?= $core->HotelData($hid, "country"); ?>';
    var options = document.getElementsByTagName('option');
    for (var i = 0; i < inputs.length; i ++) {
        if (options[i].type == 'option' && options[i].value == Country) {
            options[i].attr('selected','selected');
        }
    }
});

,您应该在load对象上侦听window事件,而不是触发事件。因此,正确的语法是:

window.onload = function(){
    var Country = '<?= $core->HotelData($hid, "country"); ?>';
    var options = document.getElementsByTagName('option');
    for (var i = 0; i < inputs.length; i ++) {
        if (options[i].type == 'option' && options[i].value == Country) {
            options[i].attr('selected','selected');
        }
    }
};

OR

jQuerified:

$(window).load(function(){
    var Country = '<?= $core->HotelData($hid, "country"); ?>';
    $('select option[value="'+Country+'"]').attr('selected', 'selected');
});

答案 2 :(得分:1)

您只是将json对象传递给window.onload,这是一个不是函数的事件。另外,你试图在没有jquery对象的情况下使用类似jquery的语法。

答案 3 :(得分:0)

您可以尝试:

window.onload = function(){
  ...
};

答案 4 :(得分:0)

试试这个

window.onload = function(){
    var Country = '<?= $core->HotelData($hid, "country"); ?>';
    var options = document.getElementsByTagName('option');
    for (var i = 0; i < inputs.length; i ++) {
        if (options[i].value == Country) {
            options[i].selected = true;
        }
    }
};

答案 5 :(得分:0)

  1. 将功能传递给onLoad
  2. 修复for循环。
  3. 修正attr来电。
  4. 应该是:

    window.onload = function () {
        var Country = '<?= $core->HotelData($hid, "country"); ?>';
        var options = document.getElementsByTagName('option');
    
        for (var i = options.length - 1;  i >= 0;  --i) {
            if (options[i].type == 'option' && options[i].value == Country) {
                $(options[i]).attr('selected','selected');
            }
        }
    }