카테고리 없음
[JS] jQuery '[object Object]' 출력오류
크피르
2022. 12. 28. 21:29
append 는 쉼표를 붙이면 각각 태그가 붙어서 나와버린다.
+로 이어 붙이면 뒤에 오는게 string이면 [object Object]가 나온다.
결국 ul를 따로 만들어주어야 한다!
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js" integrity="sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="./sample10.js"></script>
<title>Document</title>
</head>
<body>
<h3> 즐겨찾기 목록 만들기</h3>
<form>
<div>
<input id="url" type="text" name="url" placeholder="URL 주소 입력">
<input id="name" type="text" name="name" placeholder="이름입력">
<button type="button" onclick="addBookmark();">저장</button>
</div>
</form>
<ul id="ul_list">
<li><a href="https://naver.com">네이버</a></li>
</ul>
</body>
</html>
첫시도
//sample10.js
function addBookmark(){
var urlId = $("#url").val();
var nameId = $("#name").val();
var ul_list = $("#ul_list");
var a = $("<a>").attr("href", urlId).text(nameId);
ul_list.append("<li>"+a+"</li>");
}
이유
+로 이어 붙이면 뒤에 오는게 string이면 [object Object]가 나온다...
즉, 숫자에 적용되는 + 연산자 오른쪽에 오는 값이 object인 경우에 자동으로 toString()메서드를 호출함!
https://okky.kr/articles/570916
OKKY - [JavaScript] '[object Object]' 출력오류
안녕하세요 Javascript 특성살려 정렬 구현하고 있는 초보자입니다.객체를 넣어도 잘 정렬이 되게 하고 싶은데 구현 중에 오류가 생겼습니다. [코드] let array = [3,1,2,4,5], test_Object = [ { a : 1} , { a : 2 },
okky.kr
두번째 시도
//sample10.js
function addBookmark(){
var urlId = $("#url").val();
var nameId = $("#name").val();
var ul_list = $("#ul_list");
var a = $("<a>").attr("href", urlId).text(nameId);
ul_list.append("<li>",a,"</li>");
}
결과
이유
append 는 쉼표를 붙이면 각각 태그가 붙어서 나와버린다...
즉 li 다음에 a태그가 와서 저렇게 보인다.
세번째 ..
function addBookmark(){
var urlId = $("#url").val();
var nameId = $("#name").val();
var ul_list = $("#ul_list");
var a = $("<a>").attr("href", urlId).text(nameId);
var liTag = $("<li>");
liTag.html(a);
$(ul_list).first().append(liTag);
}
결과
결론
귀찮지만 ul을 따로 만들어주는 수 밖에 없다!