В этой функции данные из массива users
выполняются по значению ввода в mySearch
. Строка, содержащая поисковый запрос, выводится на return
.Вывод строковых данных JSON в отдельные div's
ДАННЫЕ:
var users = [{"username":"nlee6p","gender":"Female","sexuality":"Down-sized asymmetric time-frame","language":"Macedonian"},
{"username":"bbrooks6q","gender":"Male","sexuality":"Multi-channelled mobile customer loyalty","language":"Luxembourgish"},{"username":"astephens6r","email":"[email protected]","gender":"Female","language":"Estonian"}]
function myFunction(e) {
if((e.target.id === 'mySearch' && e.keyCode === 13) || e.target.id === 'searchButton'){
e.preventDefault();
var searchValue = document.getElementById("mySearch").value;
for(var i = 0; i < users.length; i++){
if((users[i]['last_name'] === searchValue) || (users[i]['username'] === searchValue) || (users[i]['first_name'] === searchValue)){
document.getElementById("return").innerHTML = JSON.stringify(users[i]);
return;
}
}
}
}
HTML
<input type="search" id="mySearch" onkeypress="myFunction(event)"/>
<button id="searchButton" onClick="myFunction(event)">SEARCH</button>
<div id="return">
<div id="usernameOut">
</div>
<div id="firstNameOut">
</div>
</div><!--return-->
Моего вопрос
Можно ли выводить строковые данные в отдельной диве без jQuery? В настоящее время вывод представляет собой всю строку массива, относящуюся к искомому термину. Я ищу способ разбить линию и отобразить отдельные компоненты в своих собственных тегах div (или в таблице, если это проще)
Например, когда строка выводится, будет показано значение username
в usernameOut
, first-name
в firstNameOut
и т.д.
Я использовал Jput в прошлом, но это для страницы, которая отображается локально через приложение C# и компиляции JQuery в C# является немного кошмара.
Ответы на использование ванили JS оценены, но если единственный способ - через jQuery, то я не слишком суетился.
JsFiddle (that doesn't work for some reason)
(Извините, если это не ясно, я буду редактировать, если это необходимо)
Да, это возможно. Просто не стройте данные и не перебирайте все те div, добавляя значение от объекта (users [i].имя пользователя) вместо того, чтобы поместить стробированную версию в один div. Ключ в том, что youra rray содержит объекты, к которым вы можете получить доступ, это JSON.stringify, который превращает его в строку, поэтому вы не хотите разделить эту строку вообще. Какая часть не работает? В коде тоже нет jquery, так зачем вам это нужно? – Shilly
@Shilly Спасибо за помощь! Я искал решения, и почти все они были jQuery, и мне нужно было что-то, что соответствовало бы моему существующему коду. Я также пытался обходить «.stringify», что означало синтаксический анализ того, что уже было проанализировано ... Я думаю, теперь у меня это есть. То есть 'document.getElementById (" usernameOut "). innerHTML = (пользователи [i] .username);' – gezer4000