javascript - 检查数组是否包含字符串或值

标签 javascript jquery

我目前正在通过在文本字段中写入一些内容并单击按钮来将一个数组添加到另一个数组。我还有一个 if 语句,它应该检查我编写的字符串是否已存在于表中,如果存在,我应该收到警报。但是,每次我尝试添加某些内容时,即使我的数组是空的,我都会收到警报。有什么解决办法吗?

Javascript

$(document).ready(function(){

var films = [];

// ändra bakgrundsfärg för textfield 
$('#name').keyup(function(){
            $('#name').css('background-color', 'white');
});

// ändra bakgrundsfärg för select lista
$('#options').change(function(){
            $('#options').css('background-color', 'white');
});

// kör funktionen när knappen med id "button" klickas
$("#button").click(function(){
    var titelBetyg = [];

    var titel = $('#name').val();
    var betyg = $('#options').val();

    // kontrollera om textfield är tom
    if(titel == ""){
        $('#name').css('background-color', 'red');
        alert("Mata in titel.....");
    }

    // kontrollera om select lista inte är vald
    else if(betyg == "0"){
        $('#options').css('background-color', 'red');
        alert("Välj betyg....");
    }

         // HERE IS THE IF STATEMENT WHERE IT FAILS
    // kontrollera om filmen redan finns
    else if($.inArray($("#name"), films) > -1){
        alert("Filmen finns redan...");
    }

    else{
        titelBetyg.push(betyg);
        titelBetyg.push(titel);
        films.push(titelBetyg);

        var ul = $('#rightbar ul').empty();
        if (!ul.length){ // om ul inte finns
            ul = $("<ul>").appendTo('#rightbar'); // skapa en ny
        }

        // loopa igenom arrayen och placera innehållet i ul och li
        for (var i=0; i<films.length; i++){
            ul.append("<li>" + films[i][1] + " " + "<span>" + films[i][0] + "</span>" + "</li>");
        }

        $('#form').get(0).reset();

    }
});

// kör funktionen när knappen med id "stigande" klickas
 $('#stigande').click(function () {
    if (films.length > 1) {
        films.sort(function (a, b) {
            return (a[0].length < b[0].length) ? 1 : -1;
        })
        var ul = $('#rightbar ul').empty();
        for (var i = 0; i < films.length; i++) {
            ul.append("<li>" + films[i][1] + " " + "<span>" + films[i][0] + "</span>" + "</li>");
        }
    }
});

// kör funktionen när knappen med id "fallande" klickas
$('#fallande').click(function () {
    if (films.length > 1) {
        films.sort(function (a, b) {
            return (a[0].length > b[0].length) ? 1 : -1;
        })
        var ul = $('#rightbar ul').empty();
        for (var i = 0; i < films.length; i++) {
            ul.append("<li>" + films[i][1] + " " + "<span>" + films[i][0] + "</span>" + "</li>");
        }
    }
});

});

最佳答案

$.inArray($("#name"), films) > -1

您正在检查数组中是否存在 jQuery 元素的集合,您可能的意思是:

$.inArray($.trim( $("#name").val() ), films) > -1

关于javascript - 检查数组是否包含字符串或值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15124090/

相关文章:

javascript - for循环中的延迟lineTo

javascript - 当有一个子对象时Json迭代失败

javascript - Angular 2 : How to get a reference to a ViewChild in a child component

Javascript:从 JSON 获取数据

javascript - 谷歌翻译/基本 Javascript 问题

javascript - 自适应布局上的垂直自适应图像对齐

jquery - 文本在 div 下方偏移

javascript - 在后台禁用 TinyMCE 控件

javascript - $.ajax json 下拉菜单项

php - 使用 jQuery 幻灯片从文件夹中获取图像