Я добавлением слов из яваскрипта массива в сНу класса bank-word
, который добавляет все слова к слову банка для пользователя:Найти конкретный ключ в массиве DIV/класс
for (obj in words) {
for (key in words[obj]) {
$(".wordBank_Words").append("<div class='bank-word' word='" + key + "' ><b>" + key + "</b>: " + words[obj][key] + "</li>");
}
}
Если пользователь нажмет слово в слово банк, он добавляет, что слово в текстовое поле, и скрывает это от слова банка:
$(".bank-word").click(function (event) {
//append each newly selected word to text box
$('#textBox').val($('#textBox').val() + " " + $(this).attr('word'));
//hide word from word bank
$(this).hide();
Затем, если пользователь удаляет слово из текста Ь ox, я хочу, чтобы слово появилось в банке слова как вариант. Это та часть, с которой у меня проблемы. Я могу проверить, нет ли слова в массиве textbox с isInArray(key, array)
, но у меня возникли проблемы с проверкой банка слов, чтобы убедиться, что он еще не существует в банке слов, используя isInWordBank(key)
(что означает, что пользователь выбрал слово раньше, таким образом скрывая это от банка слова). Теперь он должен появиться в банке слова, поскольку он был удален из текстового поля.
Мой вопрос: как я могу использовать jQuery.inArray
, чтобы передать слово, которое я ищу, и массив класса div, содержащий слово. Я бы это был jQuery.inArray(word, $(".wordBank_Words"))
. Я думал, что могу просто использовать jQuery find()
с each()
, но это не позволит мне получить конкретный ключ из класса div.
for (obj in words) {
for (key in words[obj]) {
//if word doesn't exist in text box array, and doesn't exist in word bank, add it back to word bank
if (!isInArray(key, array) && !isInWordBank(key)) {
log(key + " doesn't exist in text box array or word bank");
//add word back to word bank
}
}
}
Проверяет слово находится в массиве Text Box:
function isInArray(word, array) {
return array.indexOf(word) > -1;
}
Полагал проверить, если слово в слово банк вообще:
function isInWordBank(word) {
//search through word bank for key
jQuery.inArray(word, $(".wordBank_Words"))
}
HTML:
<input type="text" id="textBox" value="" />
<br/>
<button onclick="submitMe()" id="testButton" >Submit Response </button>
<br/>
<div class="wordBank_Headings">Word Bank:
<span class="wordBank_Words"></span>
</div>
Святое дерьмо да ... Я потратил столько времени, пытаясь взломать это вместе, когда уже есть замечательная функция jQuery, построенная для этого. Спасибо! Можете ли вы объяснить 'if (words.indexOf ($ (this) .attr ('word'))! == -1) {'? в этом случае, что означает 'this'? Я вижу, что есть два 'этого', но каждый относится к чему-то другому – Growler
Очень приветствуется @Growler! – probablyup
Только что обновил мой комментарий – Growler