排除未定义的值

时间:2018-08-28 19:50:59

标签: javascript

每隔一段时间我会看到<li>undefined</li>,如何使它不遍历未定义的<li>

function relatedCoursesMesh() {
    if ($('#relatedCourses').length != 0) {
        var courseNumber = $.parseHTML($('#relatedCourses #RelatedCourseNumber').html()),
            courseName = $.parseHTML($('#relatedCourses #RelatedCourseName').html()),
            parsedCourseNumber = courseNumber[0].data.split("+"),
            parsedCourseName = courseName[0].data.split("+");


        htmlOutput = "<ul>";

        $(parsedCourseNumber).each(function (index, val) {

            htmlOutput += '<li><a data-course="' + val + '" data-title="' + parsedCourseName[index] + '" href="/Pages/Class.aspx?course=' + val + '&courseTitle=' + parsedCourseName[index] + '" title="Related Course">' + parsedCourseName[index] + '</a></li>';
        })
        htmlOutput += "</ul>";
        $('#relatedCourses').html(htmlOutput);
    }
} 

2 个答案:

答案 0 :(得分:2)

您可以像这样放置if语句:

    $(parsedCourseNumber).each(function (index, val) {
        if(parsedCourseName[index]) { // also ignores "" (blank) and null values
            htmlOutput += '<li><a data-course="' + val + '" data-title="' + parsedCourseName[index] + '" href="/Pages/Class.aspx?course=' + val + '&courseTitle=' + parsedCourseName[index] + '" title="Related Course">' + parsedCourseName[index] + '</a></li>';
        }
    })

答案 1 :(得分:0)

您可以控制val变量的值是否返回未定义,因此:

function relatedCoursesMesh() {
    if ($('#relatedCourses').length != 0) {
        var courseNumber = $.parseHTML($('#relatedCourses #RelatedCourseNumber').html()),
            courseName = $.parseHTML($('#relatedCourses #RelatedCourseName').html()),
            parsedCourseNumber = courseNumber[0].data.split("+"),
            parsedCourseName = courseName[0].data.split("+");


        htmlOutput = "<ul>";

        $(parsedCourseNumber).each(function (index, val) {
            if(val !== undefined && parsedCourseName[index] !== undefined) {
              htmlOutput += '<li><a data-course="' + val + '" data-title="' + parsedCourseName[index] + '" href="/Pages/Class.aspx?course=' + val + '&courseTitle=' + parsedCourseName[index] + '" title="Related Course">' + parsedCourseName[index] + '</a></li>';
            }
        });
        htmlOutput += "</ul>";
        return $('#relatedCourses').html(htmlOutput);
    }
} 

作为函数,最好返回执行的操作的值:

return $('#relatedCourses').html(htmlOutput);

但是最好的方法肯定是查看为什么数据最初是有缺陷的。