Ошибка Javascript: исключение DOM 8 с использованием jQuery и массива


Я получаю эту ошибку:

Неперехваченная ошибка: NOT_FOUND_ERR: DOM Исключение 8

Вот мой код (пожалуйста, предложите что-нибудь, чтобы сделать его более эффективным / чистым):

В основном это кнопка, которая добавляет свой идентификатор в массив под названием "keywords":

$('.add').live('click', function() {
    if($(this).text() == "+Add") {
        console.log("add triggered");
        $(this).stop().animate({backgroundColor:'#999d92'}, 300);
        $(this).html("-Rem").fadeIn('fast'); 
        keywords.push($(this).attr("id"));
        $("#response").append(keywords); 

    }
    else {
        $(this).stop().animate({backgroundColor:'#cc6633'}, 300);
        $(this).html("+Add").fadeIn('fast'); 
        var index = keywords.indexOf($(this).attr("id"));
        keywords.splice(index, index+1);
        $("#response").append(keywords); 
    }

});

Я хочу, чтобы при нажатии кнопки "+ADD" атрибут id был добавлен в массив, а при нажатии кнопки-REM-удалить этот идентификатор из ключевых слов.

Любой совет был бы действительно помощь. Когда я просто добавляю $(это).attr ("id") к ответу div он печатает правильно. Я также попытался окружить его функцией "String ()" (возможно, это была ссылка на ресурс, а не сама строка?)

Спасибо, голова времени!

1 2

1 ответ:

keywords.splice(index, index+1);

Второй аргумент к splice - это число элементов, которые нужно удалить, так что, вероятно, это должно быть просто 1.

$("#response").append(keywords); 

Но keywords - это массив строк? jQuery не документирует такой интерфейс для append.

Вы хотите что-то вроде:?

$("#response").text(keywords.join(', '));