ํฐ์คํ ๋ฆฌ ๋ทฐ
์ด์ ํฌ์คํ ์์ ๊ตฌํ ์๋ ์ถ์ฒ ๊ฒ์ ๋ฆฌ์คํธ์ ์ถ์ฒ์ผ๋ก ๋ฌ ์์ฑ๋ ํค์๋๋ฅผ ํด๋ฆญํ๋ฉด Input ํ๊ทธ value์ ๋ฐ์ธ๋ฉ๋๋๋ก ๋ค์๊ณผ ๊ฐ์ด ์ฝ๋๋ฅผ ๊ตฌํํ์๋ค.
this.searchListElement.addEventListener('click', e => {
let targetItem = e.target.textContent;
this.textinputElement.value = '';
this.textinputElement.value = targetItem;
this.hiddenElem(this.searchListElement);
})
ํ์ง๋ง ์ ์์๊ณผ ๊ฐ์ด ํด๋ฆญํ ์์น์ ๋ฐ๋ผ Input ํ๊ทธ์ ํค์๋๊ฐ ๋ํ๋๋ ์์น๊ฐ ๋ค๋ฅด๋ค๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์๋ค.
innerText๋ฅผ ํตํ ํด๊ฒฐ
๋ฆฌ์คํธ์์ ํค์๋ ์์ฒด๊ฐ ์๋ ํญ๋ชฉ ๋ถ๋ถ์ ํด๋ฆญํ ๊ฒฝ์ฐ์๋
ํค์๋๊ฐ ์กด์ฌํ๋ span ํ๊ทธ๋ฅผ ๊ฐ์ธ๋ wrapper์ ์ด๋ฒคํธ ํ๊ฒ์ด ๋ฐ์ธ๋ฉ๋๋ค.
textContent๋ ์คํ์ด์ค(๊ณต๋ฐฑ)์ ํฌํจํ ๋ชจ๋ ํ ์คํธ๋ฅผ ๊ทธ๋๋ก ๊ฐ์ ธ์จ๋ค. ๋ฐ๋ฉด์ innerText๋ ๋ถํ์ํ ๊ณต๋ฐฑ์ ์ ๊ฑฐํ๊ณ ํ ์คํธ๋ก ๋ฐํํ๊ธฐ ๋๋ฌธ์ wrapper ํ๊ทธ์ span ํ๊ทธ ์ฌ์ด์ ์กด์ฌํ๋ ๋ถํ์ํ ๊ณต๋ฐฑ์ ์ ๊ฑฐํ๊ณ ๋ฌธ์๋ง ๊ทธ๋๋ก ์ถ๋ ฅํ ์ ์์๋ค.
๋ค๋ง, ๋ค์๋ถํฐ๋ ์ ํํ ์ด๋ฒคํธ ํ๊ฒํ ์ ํ๊ธฐ ์ํด์ ์์ ์ปจํ ์ด๋์์ ์ด๋ฒคํธ ์์์ ํ ๊ฒฝ์ฐ์๋ ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํ์ฌ ํ๊ฒํ ํ๊ณ ์ ํ๋ ์์๋ฅผ ๋ช ํํ๊ฒ ์๋ณํ๋๊ฒ ์ข์ ๋ฐฉ๋ฒ์ผ ๊ฒ ๊ฐ๋ค.
๋น๋๊ธฐ ํ์ ์ฒ๋ฆฌ์์ ํด๊ฒฐ
์ธ๋ถ์ ๋ณ๋๋ก ํด๋ฆญ ์ด๋ฒคํธ๋ฅผ ๊ฑธ์ด Input ํ๊ทธ์ value๊ฐ์ ์ง์ ํด์ฃผ๋ ๊ฒ์ด ์๋๋ผ ์ด์ ํฌ์คํ ์์์ ํ์ ์ฒ๋ฆฌ ๋ฉ์๋ ๋ด์์ ํด๊ฒฐํ๋ ๋ฐฉ์์ด ์์๋ค.
requestAdapter.get(this.requestUrl, targetText)
.then((result) => {
this.displayWordList(
this.searchListElement,
result
).forEach((element, index) => { // document.querySelectorAll('.auto-complete-item-box') ๋ฐํ
element.addEventListener('click', () => {
this.textinputElement.value = result[index].text;
this.hiddenElement(this.searchListElement);
});
});
});
'JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
pipe operator๋ฅผ ํตํด ์คํผ๋ ์ดํฐ ์ฒ๋ฆฌ (0) | 2021.07.17 |
---|---|
RxJS debounceTime operator๋ฅผ ํตํด Event request ์ค์ด๊ธฐ (0) | 2021.07.17 |
auto-complete_๋น๋๊ธฐ ์ฝ๋ฐฑ ํจ์, focusEvent, mouseEvent (0) | 2021.07.16 |
getBoundingClientRect_์์ ์์น ์ก๊ธฐ (0) | 2021.07.14 |
insertAdjacentElement๋ก ์์ ์ถ๊ฐ (0) | 2021.07.13 |