저는 javascript를 배우고 DOM 통과를 연습합니다. 'nodeName'을 기반으로 부모 요소의 배열을 반환하는 메서드를 만들었습니다. 나는 등배열의 모든 요소에 액세스
Element.prototype.specificParent = function(nodeName1) {
nodeName1 = nodeName1.toUpperCase();
var x = this;
var matches = [];
var allParents = [];
while(x.parentNode !== null) {
allParents.push(x.parentNode);
x = x.parentNode;
}
for(i = 0; i < allParents.length; i++) {
if(allParents[i].nodeName === nodeName1) {
matches.push(allParents[i]);
}
}
return matches;
}
이 특정 요소의 모든 (즉, 다른의 부모)을 선택하고 스타일을하거나 변경할 수 있도록 내가 가지, 내 원하는 효과를 가지고, 이런 짓을했는지.
:var parents = document.getElementById("startHere").specificParent("div"); //gets all parent div elements and returns the array
//I can then style them individually:
parents[0].style.background = "black";
parents[1].style.background = "black";
//etc, etc, etc
//or I could use a for loop to style them all:
for(i = 0; i < parents.length; i++) {
parents[i].style.background = "black";
}
는 내가하고 싶은 것은 이것이다 : 만 같은 요소에 액세스 할 수 있기 때문에, 반환 된 배열의 모든 요소에 액세스하기 위해, for 루프 같은 것을 사용해야합니다
var parents = document.getElementById("startHere").specificParent("div");
parents.style.background = "black"; //changing all the elements in the array
허용하는 "specificParent"메서드를 변경할 수있는 방법이 있습니까?
이것은 무의미한 운동처럼 보일 수 있지만 나는 배우고 있습니다!
감사
아니요, 방법을 사용해야합니다. – epascarello
의견을 보내 주셔서 감사합니다. 그게 대답이라고 생각했는데 내가 말했듯이, 나는 단지 배우기 만하고, 나는 방법을 사용해야 만한다는 것을 무엇을 의미합니까? 즉, 나는 Method?!?!를 사용하고 있다고 생각했다. – Mike
'parents.forEach (parent => parent.style.background = "black")'[array.forEach의 문서] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/) Global_Objects/Array/forEach) –