programming/JS

[jQuery] HTML

솧이 2022. 8. 26. 22:25

Get

text() - HTML 요소의 content 리턴

html() - HTML 요소의 content 리턴 (HTML 태그 포함)

val() - 폼 요소의 value 리턴

attr(name) -  Attribute 값 리턴

css(property) - css 값 리턴

 

Set

text(string) - HTML 요소의 content 변경

html(string) - HTML 요소의 content 변경 (HTML 태그 포함)

val(value) - 폼 요소의 value 값 변경

attr(name, value) - attribute 값 변경

css(property, value) - css 값 변경

 

 

get 방식

<script>
$(document).ready(function(){
	$('#btn11').click(function(){
    	alert('text(): ' + $('#test1').text());
    });
	$('#btn12').click(function(){
    	alert('html(): ' + $('#test1').html());
    });
    $('#btn13').click(function(){
    	alert('vsl(): ' + $('#test2').val());
    });
    $('#btn14').click(function(){
    	alert('attr(): ' + $('#test3').attr('href')); //특정 attribute 값을 읽어온다
    });
    $('#btn15').click(function(){
    	//alert('css(): ' + $('#test1').css("color));
        let cssObj = $('#test1').css(['color', 'backgroundColor']); //오브젝트를 리턴한다
        //cssObj에 {color:'...', background:'...'} 이런식으로 담겨 있으니 뽑을 땐?
        alert(cssObj.color + " " + cssObj.backgroundColor);
    });
});
</script>

 

 

set 방식 - 매개변수를 주면 값을 변경할 수 있다

<script>
$(document).ready(function(){
	$('#btn21').click(function(){
    	$('#test1').text('hello');
    });
    $('#btn22').click(function(){
        $('#test1').html('test1: Hello <b>world!</b>');
    });
    $('#btn23').click(function(){
        $('#test2').val('Donald Duck');
    });
    $('#btn24').click(function(){
    	$('#test3').attr("href", "https://jQuery.com");
        //한꺼번에 attribute 변경이 가능하다 (object 형태)
        $('#test3').text("jQuery 홈");
        $("#test3").attr({
            "href": "https://www.daum.net",
            "title": "DAUM",  //갖다대면 다음이라고 뜸
        });
    });
    $('#btn25').click(function(){
    	$('#test1').css({
        	"color": "black",
            "backgroundColor": "gray",
 	     });
    });
});
</script>

 

$(selector)의 리턴값은 하나 혹은 여러개의 element 일 수 있다

jQuery Object를 리턴한다 (wrapped set)

절대로 javascript의 DOM element 객체가 아니다!!

위의 결과는 배열처럼 사용이 가능하다 (for, index ..)

각 배열 요소는 DOM element이며 javascript DOM 함수 사용이 가능하다

 

이 떄! text(), html(), val() 값은 어떻게 동작할까?

이것들은 callback 함수를 매개변수로 넘겨줄 수 있다 

callback 함수의 매개변수는 2개 (index, oldvalue) 이고 결국 callback 함수의 리턴값이 새로운 값으로 된다

 

* input, form의 값을 변경할 때는 value를 사용한다

<script>
$(document).ready(function(){
	$('#btn31').click(function(){
    	//1
    	var $c1 = $('.c1') //리턴값이 jquery object
       	alert(c1.innerHTML) //innerHTML은 DOM의 속성이므로 실행되지 않는다 
        alert($c1[0].innerHTML); //DOM element이라 실행된다 index 사용해서 DOM element 접근 가능
        
        //2
        let result = [];
        for(e of $c1) result.push(e.innerHTML);
        alert(result.join(',');
        
        //3
        alert($c1.text()); //결과가 다 합쳐져서 나온다 결과를 하나씩 빼고 싶으면?
        
        //callback 함수 : select 된 element마다 callback 함수를 호출한다
        //index 값과 text()의 value값이 전달된다
        let result = [];
        $c1.text(function(index, value) {
        	result.push(`${index} : ${value}`)
        });
        alert(result.join('/n'));
    });
        
        //4 : callback 함수에 return 값이 있으면 변경이 발생한다
     $("#btn32").click(function(){
        $c1.text(function(index, oldValue) { //oldValue : 이전 값이 넘어오면서 값이 추가된다
        	return `old: ${oldValue} (${index})`; 
    });
    $("#btn33").click(function(){
        let result = []
		$(".i1").val(function(i, oldValue){ //oldvalue는 value 함수의 결과
            result.push(i + ":" + oldValue);
        });
        alert(result.join('\n'));
    });
    $("#btn34").click(function(){
		$(".c1").attr('title', function(i, oldValue){ //oldvalue는 value 함수의 결과
            return oldValue + "(" + i + ")";
        });
    });    
});

 

 

'programming > JS' 카테고리의 다른 글

[jQuery] Dimension  (0) 2022.08.27
[jQuery] class  (0) 2022.08.27
[jQuery] effect  (0) 2022.08.26
[jQuery] event  (0) 2022.08.26
[jQuery] selector  (0) 2022.08.25