syn.$m
개요
syn.$m은 HandStack 웹 애플리케이션에서 DOM(Document Object Model) 조작 기능을 제공합니다. HTML 요소의 조회, 생성, 수정, 삭제 및 스타일 조작 등 다양한 DOM 관련 작업을 간편하게 수행할 수 있습니다.
주요 기능
요소 탐색 및 관계 조회
자식 요소 조회
childNodes(el) 지정된 요소의 모든 자식 노드를 가져옵니다.
// 모든 자식 노드 조회 (텍스트 노드 포함)
var childNodes = syn.$m.childNodes(document.body);
console.log('자식 노드 수:', childNodes.length);
children(el) 지정된 요소의 자식 Element만 가져옵니다.
// Element 자식만 조회
var children = syn.$m.children('myContainer');
console.log('자식 Element 수:', children.length);
firstChild(el) / lastChild(el) 첫 번째 또는 마지막 자식 노드를 가져옵니다.
var firstChild = syn.$m.firstChild('myContainer');
var lastChild = syn.$m.lastChild('myContainer');
console.log('첫 자식:', firstChild?.nodeName);
console.log('마지막 자식:', lastChild?.nodeName);
firstElementChild(el) / lastElementChild(el) 첫 번째 또는 마지막 자식 Element를 가져옵니다.
var firstElement = syn.$m.firstElementChild('myContainer');
var lastElement = syn.$m.lastElementChild('myContainer');
형제 요소 조회
nextSibling(el) / previousSibling(el) 다음 또는 이전 형제 노드를 가져옵니다.
var nextNode = syn.$m.nextSibling('myElement');
var prevNode = syn.$m.previousSibling('myElement');
nextElementSibling(el) / previousElementSibling(el) 다음 또는 이전 형제 Element를 가져옵니다.
var nextElement = syn.$m.nextElementSibling('myElement');
var prevElement = syn.$m.previousElementSibling('myElement');
siblings(el) 모든 형제 요소를 가져옵니다.
var siblings = syn.$m.siblings('myElement');
siblings.forEach(sibling => {
console.log('형제 요소:', sibling.tagName);
});
부모 요소 조회
parentNode(el) / parentElement(el) 부모 노드 또는 부모 Element를 가져옵니다.
var parentNode = syn.$m.parentNode('myElement');
var parentElement = syn.$m.parentElement('myElement');
parent(el, id?) 부모 요소를 가져오거나 특정 ID를 가진 상위 요소를 찾습니다.
// 직접 부모 요소
var directParent = syn.$m.parent('myElement');
// 특정 ID를 가진 상위 요소 찾기
var specificParent = syn.$m.parent('myElement', 'targetParentId');
콘텐츠 조작
값 및 텍스트 조작
value(el, value?) 입력 요소의 값을 설정하거나 가져옵니다.
// 값 설정
syn.$m.value('myInput', 'Hello World');
// 값 가져오기
var inputValue = syn.$m.value('myInput');
console.log('입력값:', inputValue);
textContent(el, value?) 요소의 텍스트 콘텐츠를 설정하거나 가져옵니다.
// 텍스트 설정
syn.$m.textContent('myDiv', 'Hello World');
// 텍스트 가져오기
var text = syn.$m.textContent('myDiv');
innerText(el, value?) 요소의 표시되는 텍스트를 설정하거나 가져옵니다.
syn.$m.innerText('myElement', 'Visible Text');
var visibleText = syn.$m.innerText('myElement');
innerHTML(el, value?) 요소의 HTML 콘텐츠를 설정하거나 가져옵니다.
// HTML 설정
syn.$m.innerHTML('myDiv', '<b>Bold Text</b><i>Italic Text</i>');
// HTML 가져오기
var htmlContent = syn.$m.innerHTML('myDiv');
outerHTML(el) 요소 자체를 포함한 HTML을 가져옵니다.
var outerHTML = syn.$m.outerHTML('myElement');
console.log('전체 HTML:', outerHTML);