.value不返回任何内容(javaScript)

.value不返回任何内容(javaScript),javascript,Javascript,我试图从联系人处获取电话号码的值,但我要么得到[object,object]返回给我,要么什么都没有。当我尝试匹配[I].PhoneNumber时,我得到[object,object],当我添加匹配[I].PhoneNumber[0].value时,我的警报将完全停止 function callme() { var options = new ContactFindOptions(); options.filter = ""; //leaving this empty will

我试图从联系人处获取电话号码的值,但我要么得到[object,object]返回给我,要么什么都没有。当我尝试匹配[I].PhoneNumber时,我得到[object,object],当我添加匹配[I].PhoneNumber[0].value时,我的警报将完全停止

function callme() {
    var options = new ContactFindOptions();
    options.filter = ""; //leaving this empty will find return all contacts
    options.multiple = true; //return multiple results
    console.log(options);
    var filter = ["displayName", "phoneNumbers"]; //an array of fields to compare against the options.filter 

    navigator.contacts.find(filter, successFunc, errFunc, options);

    function successFunc(matches) {
        for (var i = 0; i < matches.length; i++) {
            //this loops through all of the contacts

            var contact_name = matches[i].displayName;
            var contact_number = matches[i].phoneNumbers; //this returns [object, Object]
            // var contact_number = matches[i].phoneNumbers[0].value; returns nothing at all
            var contact_full = contact_name + " " + contact_number;
        }
        alert(contact_full);
    }

    function errFunc() {
        alert("oh no!");
    }
};
函数callme(){
var options=new ContactFindOptions();
options.filter=“”;//保留此项为空将查找并返回所有联系人
options.multiple=true;//返回多个结果
console.log(选项);
var filter=[“displayName”,“phoneNumbers”];//要与options.filter进行比较的字段数组
navigator.contacts.find(过滤器、successFunc、errFunc、选项);
函数successFunc(匹配项){
对于(var i=0;i
我不确定JSON对象的结构是什么,但您可以在firebug中进行调试,如果您不确定如何进行调试,请尝试以下操作:

function successFunc(matches) {
        for (var i = 0; i < matches.length; i++) {
            //this loops through all of the contacts

        var contact_name = matches[i].displayName;
        alert(JSON.stringify(matches[i].phoneNumbers);
var contact_number = matches[i].phoneNumbers; //this returns [object, Object]
            // var contact_number = matches[i].phoneNumbers[0].value; returns nothing at all
            var contact_full = contact_name + " " + contact_number;

    }
    alert(contact_full);
}
函数successFunc(匹配项){
对于(var i=0;i

一旦出现警报对话框,您将能够看到对象的属性列表。

并使用
console.log
而不是
alert
。为什么不将[i]与console.log(匹配[i])进行哑区匹配看看value是否是matchesI的属性。我在手机上测试时不能使用console.log。什么类型的手机?如果是iPhone,你可以将它连接到Mac上的Safari开发者工具。Android手机可能也有类似的功能。根据你开发的具体内容,你可以先在桌面上测试/构建你的应用程序p、 将此添加到你的应用程序中,以查看它是否会提醒号码。
if(匹配[i].phoneNumbers){alert(联系[0].phoneNumbers[0].value);}