2015-08-16 4 views
-1

Я использую этот скрипт ниже, чтобы извлечь значение из моего URL-адреса и отобразить значение в поле ввода.Значение переменной печатает '[object Object]'

var QueryString = function() { 
    // This function is anonymous, is executed immediately and 
    // the return value is assigned to QueryString! 
    var query_string = {}; 
    var query = window.location.search.substring(1); 
    var vars = query.split("&"); 
    for (var i=0;i<vars.length;i++) { 
    var pair = vars[i].split("="); 
     // If first entry with this name 
    if (typeof query_string[pair[0]] === "undefined") { 
     query_string[pair[0]] = decodeURIComponent(pair[1]); 
     // If second entry with this name 
    } else if (typeof query_string[pair[0]] === "string") { 
     var arr = [ query_string[pair[0]],decodeURIComponent(pair[1]) ]; 
     query_string[pair[0]] = arr; 
     // If third or later entry with this name 
    } else { 
     query_string[pair[0]].push(decodeURIComponent(pair[1])); 
    } 
    } 
    return query_string; 
}(); 

document.addEventListener("DOMContentLoaded", function() { 
    document.getElementById("field34").value = QueryString; 
}, false); 

По какой-то причине, когда мой переменный QueryString печатает на экран он отображает это в моем поле ввода:

[object Object] 

Однако, когда я console.log переменный я получаю это:

console.log(QueryString) 
undefined 
Object { value: "YX57WDL" } 

Который имеет значение в нем Я хотел бы напечатать на экране.

Любая идея, почему это может произойти?

Спасибо, Ник

ответ

1

вы можете распечатать его следующим образом:

QueryString.value 
2

Ваша переменная QueryString присваивается объект. Когда вы назначаете объект атрибуту элемента DOM, объект передается в строку.

В JavaScript, всякий раз, когда объект передается в строку, вызывается его метод .toString(). По умолчанию он возвращает [object Object].

Если вам требуется другое строковое представление для вашего объекта, вы можете либо переопределить его метод .toString(), либо избежать неявного литья, построив строку вручную, например, с помощью JSON.stringify().

Смежные вопросы