July 3, 2001 - Reading an Attribute Node in IE6 and NS6
July 3, 2001 Reading an Attribute Node in IE6 and NS6 Tips: July 2001
Yehuda Shiran, Ph.D.
|
setAttribute()
and getAttribute()
, Internet Explorer 6 (as well as Netscape 6) supports also setAttributeNode()
and getAttributeNode()
. The method getAttributeNode()
adds an attribute object to an existing DOM node. Here is the syntax:
elementNode.getAttributeNode(attributeObject);
where:
elementNode
is a tag node. It mush have been created with the createElement()
method.
attributeObject
is an object that must have been created with the createAttribute()
method.
Here is a sample code which first creates an object, nodePublishDate
, that is equal to today's date. It then creates a tag element node ("P")
, and finally converts this latter node to an attribute node:
var nodeBook, nodePublishDate;
nodePublishDate = document.createAttribute("PublishDate");
nodePublishDate.value = String(Date());
nodeBook = document.createElement("P");
nodeBook.setAttributeNode(nodePublishDate);
We put it in a conditional statement in the header of this tip:
if (bVer() >= 6) {
var nodeBook, nodePublishDate;
nodePublishDate = document.createAttribute("PublishDate");
nodePublishDate.value = String(Date());
nodeBook = document.createElement("P");
nodeBook.setAttributeNode(nodePublishDate);
}
Click the following buttons to see that indeed nodeBook
is an attribute node. The name of the attribute is PublishDate
and its value is today's date:
Here is how we define the buttons above:
<FORM>
<INPUT TYPE="button" VALUE="getAttribute('PublishDate')"
onClick="javascript:if (bVer()>=6) {alert(nodeBook.getAttribute('PublishDate'))}
else {alert('You must use Netscape 6 (or higher) or Internet Explorer 6 (or higher)')}">
<INPUT TYPE="button" VALUE="getAttributeNode('PublishDate').value"
onClick="javascript:if (bVer()>=6) {alert(nodeBook.getAttributeNode('PublishDate').value)}
else {alert('You must use Netscape 6 (or higher) or Internet Explorer 6 (or higher)')}">
</FORM>
The browser version is computed by the bVer()
function:
function bVer() {
// return version number (e.g., 4.03)
msieIndex = navigator.appVersion.indexOf("MSIE") + 5;
return(parseFloat(navigator.appVersion.substr(msieIndex,3)));
}
Notice the usage of the getAttributeNode()
method above. Also, notice the similarity between getAttribute()
and getAttributeNode()
.