【发布时间】:2018-07-09 23:13:15
【问题描述】:
我正在使用 webSocket 实现自动完成。当我输入具有类名item-search-results 的输入字段时,会显示一堆结果search results screenshot。我的问题是结果只会附加到第一个 item-search-results 输入字段。
但我需要将结果显示在右侧 item-search-results 输入字段下。
比如我在第4个输入框输入item-search-results,结果却附加到第一个results are attach to the first row screenshot
这是我的 webSocket js,我使用 jQuery:
$(function () {
let webSocket = new WebSocket("ws://localhost:8000/autocomplete");
webSocket.onopen = (msgEvent) => {
console.log('connected to WebSocket!');
};
webSocket.onmessage = (msgEvent) => {
/* results shows {"results":{"results":[{..}]}}.
results.results shows {results:[{..}]}
results.results.results shows [{...}], which is an array */
let results = JSON.parse(msgEvent.data),
resultsArr = results.results.results;
console.log(resultsArr);
$.each(resultsArr, (index, value) => {
$('<div>' + value['name'] + '</div>').attr('id', 'item-search-results-' + index).appendTo($('.item-search-results'));
});
};
webSocket.onclose = (msgEvent) => {
console.log('disconnected');
};
webSocket.onerror = (msgEvent) => {
console.log('there\'s an error');
};
/**
* Request to display data
*/
$('.add-items-table').on('input', '.item-input', (e) => {
let value = e.target.value;
webSocket.send(value);
console.log(value);
})
})
【问题讨论】:
-
我想这可能会有所帮助:api.jquery.com/closest
-
你必须使用 jquery 来做到这一点吗?使用一些前端框架,如 vue 或 react 会容易得多。
-
我尝试了最接近的但没有任何反应,结果甚至不会出现。 :(
-
我不能为这个项目使用任何框架@Guzz
标签: javascript jquery websocket