Boa tarde gente. A dúvida é a seguinte: Por que elem2.nodeName está retornando null quando o script é executado? eu achei que o elemento <select> que tem como id "magazines" seria retornado.
Eu tenho um select com um id = "magazines"
e digitei: var elem2 = $("magazines");
quando chamei nodeName como elem2.nodeName , me foi retornado null.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link href = "magazine.css" rel = "stylesheet" type = "text/css" />
<script src = "magazine.js" type = "text/javascript"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Magazines</title>
</head>
<body>
<div id = "content">
<h1>Magazine Subscribing</h1>
<form>
<p><label for = "name">Name:</label>
<input type = "text" id = "name" />
<span class = "error" id = "nameError"></span>
</p>
<p><label for = "email">Email:</label>
<input type = "email" id = "email" />
<span class = "error" id = "emailError"></span>
</p>
<p>
<label for = "age">Age:</label>
<input type = "text" id = "age" size = "2" maxlength = "2" />
<span class = "error" id = "ageError"></span>
</p>
<input type = "radio" name = "gender" id = "male" value = "male" /> Male
<span class = "error" id = "genderError"></span><br />
<input type = "radio" name = "gender" id = "female" value = "female" /> Female
<p>
<select name = "magazines" id = "magazines" multiple = "multiple">
<optgroup label = "Science">
<option value = "sciam">Scientific American</option>
<option value = "nature">Nature</option>
<option value = "science">Science</option>
</optgroup>
<optgroup label = "Technology">
<option value = "wired">Wired</option>
<option value = "arstechnica">Ars Technica</option>
<option value = "javabox">Java Box</option>
</optgroup>
</select>
<span class = "error" id = "magazineError"></span>
</p>
<p><input type = "checkbox" name = "newsletter" id = "newsletter" />
Check if you want to subscribe for our newsletter</p>
<p><textarea name = "signatures" id = "signatures" rows = "7" cols = "40"></textarea></p>
<label> </label>
<input type = "button" id = "subscribe" value = "subscribe" />
</form>
</div>
</body>
</html>
// JavaScript Document
var $ = function(id)
{
return document.getElementById(id);
}
var DOMTest = function()
{
var node;
var elem1 = $("name");
document.write("Node name: " + elem1.nodeName + "<br>"); // INPUT
document.write("Node type: " + elem1.nodeType + "<br>"); // 1
document.write("Node value: " + elem1.nodeValue + "<br>"); // null
document.write("Parent node: " + elem1.parentNode + "<br>"); // <p>
document.write("Child nodes of " + elem1.nodeName + ":<br>");
for(var i = 0; i < elem1.childNodes.length; i++)
{
node = elem1.childNodes[i];
document.write(node.nodeName + "<br>");
}
document.write("<br>");
var elem2 = $("magazines");
document.write("Child nodes of " + elem2.nodeName + ":<br>"); // dá erro nessa linha dizendo que elem2 é null. Mas porquê?
for(var i = 0; i < elem2.childNodes.length; i++)
{
node = elem2.childNodes[i];
document.write(node.nodeName + "<br>");
}
}
window.onload = DOMTest;
Question
Edu Valente
Boa tarde gente. A dúvida é a seguinte: Por que elem2.nodeName está retornando null quando o script é executado? eu achei que o elemento <select> que tem como id "magazines" seria retornado.
Eu tenho um select com um id = "magazines"
e digitei: var elem2 = $("magazines");
quando chamei nodeName como elem2.nodeName , me foi retornado null.
Edited by Edu ValenteLink to comment
Share on other sites
2 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.