기존의 정렬되지 않은 목록에 목록 항목을 추가하는 방법
다음과 같은 코드가 있습니다.
<div id="header">
<ul class="tabs">
<li><a href="/user/view"><span class="tab">Profile</span></a></li>
<li><a href="/user/edit"><span class="tab">Edit</span></a></li>
</ul>
</div>
jQuery를 사용하여 목록에 다음을 추가하고 싶습니다.
<li><a href="/user/messages"><span class="tab">Message Center</span></a></li>
시도해 봤습니다.
$("#content ul li:last").append("<li><a href="/user/messages"><span class="tab">Message Center</span></a></li>");
하지만 그것은 새로운 것을 추가합니다.li
최후의 순간에li
(마감 태그 바로 앞), 다음이 아닙니다.이것을 추가하는 가장 좋은 방법은 무엇입니까?li
?
이렇게 하면 됩니다.
$("#header ul").append('<li><a href="/user/messages"><span class="tab">Message Center</span></a></li>');
두 가지:
- 다음을 추가할 수 있습니다.
<li>
에게<ul>
그 자체로 - HTML에서 사용하는 것과 반대 형식의 따옴표를 사용해야 합니다. 따라서 속성에서 큰따옴표를 사용하고 있으므로 코드를 작은따옴표로 둘러싸십시오.
또한 보다 '객체'적이고 읽기 쉬운 방법으로 이 작업을 수행할 수 있습니다.
$('#content ul').append(
$('<li>').append(
$('<a>').attr('href','/user/messages').append(
$('<span>').attr('class', 'tab').append("Message center")
)));
그때는 인용문으로 싸울 필요는 없지만, 교정기의 흔적은 꼭 간직해야 합니다 :)
단순히 텍스트를 추가하는 경우li
사용할 수 있는 항목:
$("#ul").append($("<li>").text("Some Text."));
"append" 대신 "after"를 사용하는 것은 어떻습니까?
$("#content ul li:last").after('<li><a href="/user/messages"><span class="tab">Message Center</span></a></li>');
".after"는 일치하는 요소 집합의 각 요소 뒤에 매개 변수로 지정된 내용을 삽입할 수 있습니다.
jQuery에는 다음과 같은 옵션이 함께 제공되어 이 경우 필요한 사항을 충족할 수 있습니다.
append
부모 끝에 요소를 추가하는 데 사용됩니다.div
선택기에 지정됨:
$('ul.tabs').append('<li>An element</li>');
prepend
상위 항목의 맨 위/시작에 요소를 추가하는 데 사용됩니다.div
선택기에 지정됨:
$('ul.tabs').prepend('<li>An element</li>');
insertAfter
지정한 요소 다음에 선택한 요소를 삽입할 수 있습니다.그러면 생성된 요소가 지정된 선택기 닫기 태그 다음에 DOM에 배치됩니다.
$('<li>An element</li>').insertAfter('ul.tabs>li:last');
will result in:
<li><a href="/user/edit"><span class="tab">Edit</span></a></li>
<li>An element</li>
insertBefore
위와 반대의 작업을 수행합니다.
$('<li>An element</li>').insertBefore('ul.tabs>li:last');
will result in:
<li>An element</li>
<li><a href="/user/edit"><span class="tab">Edit</span></a></li>
마지막 요소가 아닌 컨테이너에 추가해야 합니다.
$("#content ul").append('<li><a href="/user/messages"><span class="tab">Message Center</span></a></li>');
append() 함수는 때때로 사람들을 혼란스럽게 하기 때문에 jQuery에서 add()라고 불렀어야 합니다.주어진 요소 뒤에 무언가를 추가하고 실제로 요소에 추가한다고 생각할 수 있습니다.
$("#content ul").append('<li><a href="/user/messages"><span class="tab">Message Center</span></a></li>');
대신에
$("#header ul li:last")
해라
$("#header ul")
사용:
$("#content ul").append('<li><a href="/user/messages"><span class="tab">Message Center</span></a></li>');
다음은 코드 가독성(블로그용 무염 플러그)과 관련된 몇 가지 피드백입니다.http://coderob.wordpress.com/2012/02/02/code-readability
UL에 요소를 추가하는 작업에서 새 요소의 선언을 분리하는 것을 고려해 보십시오.다음과 같이 표시됩니다.
var tabSpan = $('<span/>', {
html: 'Message Center'
});
var messageCenterAnchor = $('<a/>', {
href='/user/messages',
html: tabSpan
});
var newListItem = $('<li/>', {
html: messageCenterAnchor,
"id": "myIDGoesHere"
}); // NOTE: you have to put quotes around "id" for IE..
$("content ul").append(newListItem);
사용:
// Creating and adding an element to the page at the same time.
$("ul").append("<li>list item</li>");
이렇게 하는 것이 가장 빠른 방법입니다.
list.push($('<li>', {text: blocks[i] }));
$('ul').append(list);
어디에blocks
배열입니다.그리고 배열을 반복해야 합니다.
이것은 다른 것입니다.
$("#header ul li").last().html('<li> Menu 5 </li>');
이 스레드에 추가하기 위해 - 기존 항목을 이동하는 경우 사용해야 합니다.clone
이벤트 복제/딥 복제 여부에 대한 true/false(https://api.jquery.com/clone/) )도 확인할 수 있습니다.
예:$("#content ul").append($('.existing_li').clone(true));
더하다li
ul
jquery의 prepend() 함수를 사용한 첫 번째 항목으로
$("ul").prepend("<li>first item</li>");
더하다li
ul
jquery의 append() 기능을 사용한 마지막 항목으로
$("ul").append("<li>last item</li>");
언급URL : https://stackoverflow.com/questions/1145208/how-to-add-a-list-item-to-an-existing-unordered-list
'it-source' 카테고리의 다른 글
jQuery를 사용하여 로드 시 선택한 라디오 옵션을 설정하는 방법 (0) | 2023.05.11 |
---|---|
날짜 시간 대신 날짜? (0) | 2023.05.11 |
Windows 서비스가 있는지 확인하고 PowerShell에서 삭제 (0) | 2023.05.11 |
Xcode 디버거는 객체를 인쇄하지 않고 0으로 표시합니다. (0) | 2023.05.11 |
Eclipse JUNO가 시작되지 않습니다. (0) | 2023.05.11 |