最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to get the parentNode - Stack Overflow

programmeradmin2浏览0评论

Trying to create a simple document that gets the parentNode then applies a background color. My getElementByTagName is "p" so the parentNode would be the <body>. The background color should then be applied to the entire document, right? I'm getting an "object expected" error.

<!--purpose is to use parent node and change the background color-->
<html>
<body>
<head>
<script type="text/javascript" language="javascript">
function changeIt() {
  var node;
  node = document.getElementsByTagName("p").parentNode;
  node.style.background-color = '#0033dd';
}
</script>
</head>

<div id="teams">
  <h1>NFL Teams</h1>

  <h2>NFC North</h2>
  <p>Chicago Bears</p>
  <p>Green Bay Packers</p>
  <p>Minnesota Vikings</p>
  <p>Detroit Lions</p>

  <h2>NFC South</h2>
  <p>New Orleans Saints</p>
  <p>Atlanta Falcons</p>
  <p>Carolina Panthers</p>
  <p>Tampa Bay Buccannears</p>

  <h2>NFC East</h2>
  <p>Dallas Cowboys</p>
  <p>Washington Redskins</p>
  <p>Philadelphia Eagles</p>
  <p>NY Giants</p>

  <h2>NFC West</h2>
  <p>San Francisco 49ers</p>
  <p>Arizona Cardinals</p>
  <p>Seattle Seahawks</p>
  <p>St.Louis Rams</p>
</div>

<input type="button" value="change background color" onClick="changeIt()">   

</body>
</html>

Trying to create a simple document that gets the parentNode then applies a background color. My getElementByTagName is "p" so the parentNode would be the <body>. The background color should then be applied to the entire document, right? I'm getting an "object expected" error.

<!--purpose is to use parent node and change the background color-->
<html>
<body>
<head>
<script type="text/javascript" language="javascript">
function changeIt() {
  var node;
  node = document.getElementsByTagName("p").parentNode;
  node.style.background-color = '#0033dd';
}
</script>
</head>

<div id="teams">
  <h1>NFL Teams</h1>

  <h2>NFC North</h2>
  <p>Chicago Bears</p>
  <p>Green Bay Packers</p>
  <p>Minnesota Vikings</p>
  <p>Detroit Lions</p>

  <h2>NFC South</h2>
  <p>New Orleans Saints</p>
  <p>Atlanta Falcons</p>
  <p>Carolina Panthers</p>
  <p>Tampa Bay Buccannears</p>

  <h2>NFC East</h2>
  <p>Dallas Cowboys</p>
  <p>Washington Redskins</p>
  <p>Philadelphia Eagles</p>
  <p>NY Giants</p>

  <h2>NFC West</h2>
  <p>San Francisco 49ers</p>
  <p>Arizona Cardinals</p>
  <p>Seattle Seahawks</p>
  <p>St.Louis Rams</p>
</div>

<input type="button" value="change background color" onClick="changeIt()">   

</body>
</html>
Share Improve this question edited Feb 8, 2012 at 7:08 Mike Samuel 121k30 gold badges227 silver badges254 bronze badges asked Feb 8, 2012 at 7:02 user1150101user1150101
Add a ment  | 

1 Answer 1

Reset to default 5

Background colour is a problem. It is denoted in javascript as backgroundColor. In fact, I think all javascript notations of a css style use camels as opposed to the dash.

Also, you will need to pick a position of the getElementsByTagName array for the javascript to get the parent of it. parentNode works by getting the parent of a specific element. Not an array of elements.

function changeIt() {
  var node;
  node = document.getElementsByTagName("p")[0].parentNode;
  node.style.backgroundColor = '#0033dd';
}
发布评论

评论列表(0)

  1. 暂无评论