未捕获的TypeError:无法读取null JSON-JQUERY的属性“length”

时间:2014-02-17 09:14:08

标签: javascript jquery json

它的功能有问题并显示为控制台 未捕获的TypeError:无法读取null的属性“length” 并且无法理解为什么

function shownameplaylist(){
$.getJSON( "js/json/nameplaylist.json", function( data ) {
    var items = [];
    $.each( data, function( key, value ) {
        $('#nameplaylist').append('<option>'+value.title+'</option>')
    });
    $('.nameplaylist option:first-child').attr("selected", "selected");
    nameplaylist=$( ".nameplaylist option:selected" ).text();
    console.log(nameplaylist.length);
    if(nameplaylist.length==0){
        $('#nameplaylist').css('display','none');
        $('#delplaylist').css('display','none');
    }
}).done(function(){ // If the AJAX call encountered an error
        showplaylist();
    })
    .fail(function(){ // If the AJAX call encountered an error
        console.log('no load nameplaylist');
        $('#nameplaylist').css('display','none');
        $('#delnamelist').css('display','none');
        $('#delplaylist').css('display','none');

    });
}

1 个答案:

答案 0 :(得分:0)

您正在为“nameplaylist”,#nameplaylist.nameplaylist使用两个不同的选择器。第一个意味着一个元素具有{name1'的ID,第二个意味着一个元素具有{name}的class

$('#nameplaylist')$('.nameplaylist')不会选择相同的元素,除非您的元素同时包含“{name 1 +”和 id“nameplaylist”:< / p>

class

确定您实际使用的是哪一个并相应地修改选择器。

查看您的代码,我想您的修复只是将第7行和第8行更改为:

<elem id="nameplaylist" />       <!-- $('#nameplaylist') -->
<elem class="nameplaylist" />    <!-- $('.nameplaylist') -->