0

js代码:

    $.each(data, function (key, value) {
            if(key == 'REGEXP' || there is only one object in data){
                $changableValidationType.append('<option selected="selected" value="'+key+'">'+value+'</option>');                    
            }
            else
                $changableValidationType.append('<option value="'+key+'">'+value+'</option>');
    });

如果数据或其 REGEXP 中只有一个对象,那么我想将其设为 selected="selected",

4

3 回答 3

0

尝试这个:

if(key == 'REGEXP' || (typeof data =="object" && data.length == 1) || typeof data == "undefined"){

如果需要定义数据,您可以进行最后一次检查,但我不确定如果没有定义数据,您将如何进入那里。

于 2013-09-27T05:49:48.303 回答
0

我假设您要检查内部对象的长度data

 $.each(data, function (key, value) {
            if(key == 'REGEXP' || (typeof(value)== object && value.length == 1)){
                $changableValidationType.append('<option selected="selected" value="'+key+'">'+value+'</option>');                    
            }
            else
                $changableValidationType.append('<option value="'+key+'">'+value+'</option>');
    });
于 2013-09-27T06:08:25.617 回答
0

我认为你必须使用这样的东西。jsFiddle

var size = assocArrayLength(data);
if (data['REGEXP'] || size === 1) {
    var key = Object.keys(data)[0];
    var value = data[key];

    console.log(key + ":" + value);
    $changableValidationType.append('<option selected="selected" value="' + key + '">' + value + '</option>');
} else {
    console.log(size);

    for(var key in data){
        $changableValidationType.append('<option value="' + key + '">' + data[key] + '</option>');
    }
}

function assocArrayLength(arr){
    var size = 0, key;
    for (key in arr) {
        if (arr.hasOwnProperty(key)) size++;
    }
    return size;
};

因为关联数组的行为与JavaScript 中的普通数组不同。有关更多信息,您可以在此处阅读有关这些数组 中大小的更详细答案

于 2013-09-27T07:30:19.773 回答