728x90
728x90

Text Node의 Value 바꾸기

 

nodeValue의 property는 textnode의 value를 바꾸는 데 사용된다

 

nodeValue : Node interface의 nodeValue property는 현재 노드(current node)의 값(value)을 반환(return)하거나 설정한다 >>참고

document 자기자신을 가리키면 nodeValue는 null을 반환한다
text, comment, CDATA nodes는 node의 내용을 반환한다
attribute 노드는 attribute 값을 반환한다

 

 

예시

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myFunction(this);
    }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();

function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    var x;    
    var txt = "";
    x = xmlDoc.getElementsByTagName("title")[0].childNodes[0];
    txt += x.nodeValue + "<br>";    
    x.nodeValue = "Easy Cooking";
    
    // 바꾸는 부분
    x = xmlDoc.getElementsByTagName("title")[0].childNodes[0];
    txt += x.nodeValue + "<br>";    
    document.getElementById("demo").innerHTML = txt;
}
// https://www.w3schools.com/xml/tryit.asp?filename=try_dom_change_nodevalue
</script>
</body>
</html>
<!-- books.xml -->
<bookstore>
   <book category="cooking">
       <title lang="en">Everyday Italian</title>
       <author>Giada De Laurentiis</author>
       <year>2005</year>
       <price>30.00</price> </book>
   <book category="children">
       <title lang="en">Harry Potter</title>
       <author>J K. Rowling</author>
       <year>2005</year>
       <price>29.99</price> </book>
   <book category="web">
       <title lang="en">XQuery Kick Start</title>
       <author>James McGovern</author>
       <author>Per Bothner</author>
       <author>Kurt Cagle</author>
       <author>James Linn</author>
       <author>Vaidyanathan Nagarajan</author>
       <year>2003</year>
       <price>49.99</price> </book>
   <book category="web" cover="paperback">
       <title lang="en">Learning XML</title>
       <author>Erik T. Ray</author>
       <year>2003</year>
       <price>39.95</price> </book>
</bookstore>

 

 

 

 

Attribute의 Value 바꾸기

DOM에서 attribute 들은 여러 개의 노드이다. 요소 (element) 노드와 달리 attribute 노드에는 텍스트 값이 있다.
속성 값을 변경하는 방법은 텍스트 값을 변경하는 것이다. setAttribute () 메소드를 사용해서 변경하거나, attribute 노드의 nodeValue 프로퍼티를 설정하여 변경한다.

 

1) setAttribute() 이용

 

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myFunction(this);
    }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();

function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    var x = xmlDoc.getElementsByTagName('book');
    x[0].setAttribute("category","food"); //원래 값은 cooking
    document.getElementById("demo").innerHTML =
    x[0].getAttribute("category");
}
// https://www.w3schools.com/xml/tryit.asp?filename=try_dom_setattribute1
</script>

</body>
</html>


 

 

2) nodeValue() 이용

 

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myFunction(this);
    }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();

function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    var x = xmlDoc.getElementsByTagName("book")[0]
    var y = x.getAttributeNode("category");
    
    var txt = y.nodeValue + "<br>";
    y.nodeValue ="food";
    txt += y.nodeValue;
    document.getElementById("demo").innerHTML = txt;
}
</script>
</body>
</html>
728x90
728x90
블로그 이미지

coding-restaurant

코딩 맛집에 방문해주셔서 감사합니다.

,

v