Problem Addressing Objects Using ChildNodes
Jul 23, 2005
i'm working on a portion of a CMS that allows content-admins to browse
a product list, and add individual products into the taxonomy by
clicking checkboxes next to categories they might belong in.
since the taxonomy is a rather long list, i'm hiding and showing divs
for the secondary and tertiary links, so when a user clicks on the
checkbox for the parent category, the children appear in a second (and
third) div, with checkboxes of their own.
however, i'd like for the secondary and third level checkboxes to
become unchecked when the parent is. i've tried addressing them in
numerous ways, but something consistently gets lost, in that i keep
getting "x doesn't have any properties" errors.
ie:
var parentnode = document.getElementById(divName);
var allMyChildren = parentnode.childNodes.getElementsByName("INPUT");
alert(allMyChildren.length);
this returns the proper length, but then
for (var i=0;i < allMyChildren.length;i++) {
var chklist = allMyChildren[i];
if (chklist.type == "checkbox") {
// uncheck it
}
}
this consistently returns that chklist has no properties...
View 7 Replies
ADVERTISEMENT
Jul 11, 2006
this should be simple but I cannot figure it out. This is the HTML:
HTML Code:
<div id="box">
<p>one</p>
<p>two <strong>three</strong></p>
...
</div>
The JavaScript function has to take everything inside <div id="box"> and put it into another div. It should become:
HTML Code:
<div id="box">
<div class="content">
<p>one</p>
<p>two <strong>three</strong></p>
...
</div>
</div>
So how can I get all childNodes recursively to enclose them with another element?
View 2 Replies
View Related
Jan 4, 2006
I have a problem with getting the amount of childs in a XML structure,
the strucure is somewhat like the following:
<?xml version="1.0" encoding="iso-8859-1"?>
<cms>
<num>21</num>
<xmlnames>
<field>id</field>
<field>name</field>
<field>availablefrom</field>
<field>availableuntill</field>
<field>owner</field>
</xmlnames>
</cms>
If I use the following to get te amount of childs for xmlnames I get an
amount of 11:
xmlObj.responseXML.getElementsByTagName('xmlnames' )[0].childNodes.length
Is this wrong or maybe there is a better / other way of counting the
child amount?
View 3 Replies
View Related
Jan 7, 2007
I am starting to learn using javascript on DOM. One of the first things
I tested was listing all the child nodes from an element. Like ->
*html code:
<div id="pagetitle">
<span>My Text</span>
</div>
In my javascript I tried to list all the child nodes from <div>, Firefox
and Opera gave me 3 -- 1)text node with a null value, 2)span, 3)text
node with a null value.
It look to me that the browsers treated the line break as a text node
with no value!!
If I modified the html code to :
<div id="pagetitle"><span>My Text</span></div>
Then the browsers gave me the right answer: 1
They still gave me a wrong answer of 3 if I put a space around the
<spanelement like this:
<div id="pagetitle"<span>My Text</span</div>
What did I do wrong? I would still want the elements to be on their own
lines.
View 2 Replies
View Related
Dec 26, 2003
i wrote a very simple HTML page to test some DOM features between Mozilla and IE. Mozilla is perfect everything went fine and i got the childNodes from my custom tag ( this tag i named <blah> ), inside this tag there is two <span>, that i retrieved. But with IE i really could figure out how its done! Code:
View 1 Replies
View Related
May 20, 2005
I wanna get all the text nodes of the children of an element. The goal is to get an array with all the textNodes in each cell of a table, without any other nodes that might ocure whithin that cell (<p>, <br> etc...)
I mean if:
<td>12</td>
<td>1<p>23<b>34</b>5</p>6</td>
I need:
var txt = new Array()
txt[0] = ཈'
txt[1] = ?'
Now I had to circle through all the childNodes to extract all the text nodes. I have build a function, but something is wrong in the code, and I don't sense what. I need soime fresh eyes, any ideeas? Where's the mistake?:
<script type="text/javascript">
function checkCell(){
var allC = document.getElementById('tab').getElementsByTagName('td');//cells' collection
var txt = new Array()
for(var i=0;i<allC.length;i++){
txt[i]=''
while(allC[i].hasChildNodes()){
var chC = allC[i].childNodes;
for(var j=0;j<chC.length;j++){
if(chC[j].nodeType==3){
txt[i]+=chC[j].data;
}
}
allC[i]=allC[i].childNodes;
}
}
alert(txt[1])
}
onload=checkCell;
</script>
View 8 Replies
View Related
Mar 14, 2006
I have a script that automatically makes the class change for an input field onFocus. Everything works in both IE and Firefox with the inputs, but I am having trouble with an image inside of a link in Firefox. I am using a link instead of a input type="submit" for IE reasons. Code:
View 7 Replies
View Related
Jul 19, 2005
if I have:
<form id='form1'>
<input id='one' value=''>
<input id='two' value=''>
</form>
is there a way for me to check the child nodes of the <form> element for a specific id. in other words, can I check if form1 contains an element with id 'one' for example?
View 17 Replies
View Related
Nov 23, 2005
I have a div 'readroot' that I clone. I change the change the id and
name of the childnodes of 'readroot' to the original name plus a
number(counter).
The problem is I have i have a div 'serials' inside 'readroot' and the
childnodes of 'readroot' are not modified with the current function i have.
What is the best way to modify the childnodes of the div serials?
I guess i could put another for loop inside the for loop of the
moreFields function but i am thinking a recursive function could do it. Code:
View 2 Replies
View Related
Nov 11, 2010
I have a javascript for a tree view but i need to change it according to the requirement. Lets start with example with the treeview as follow:
1 Door phone
1.1 Ready Kits
1.1.1 Audioset
1.1.2 Videoset
[Code]....
Now the thing is in the current treeview a single category is open at a time. like if 1.1.1 is open 1.1.2 will b closed and similarly if 1.1 is open...1.2 will b closed. But i want that when i click on 1(Door phone) ie Door phone...evry node should be opened instead of just one similary when i click on 2(CCTV), all its node should be opened.
View 7 Replies
View Related
Aug 16, 2006
From what I've read, everything in the DOM is a node. Basically there are three types of nodes: text, element and attribute (there are more node types but these are the most common).
Let's say I have the following html:
<html>
<form>
<p></p>
</form
</html>
Then this javascript:
var forms = document.getElementsByTagName("form")
var form = forms[0];
alert(form.childNodes.length); /* output is 3 */
I would think that the output should be 2 as I only see 2 childNodes for the form object: the <p> element is an element node and the <p> element has a text node, so that's a total of 2 nodes. Where is the 3rd one comming from.
To add to the confusion, if I change the html to:
<html>
<form>
<p title="jeff" id="22"></p>
</form
</html>
The above javascript still outputs 3. I would think that the output is 4:
- 1st node is the <p> element
- 2nd node is the <p> element's attribute node "title"
- 3rd node is the <p> element's attribute node "id"
- 4th node is the <p> element's text node
Obviously I'm not correctly comprehending how childNodes are determined.
View 7 Replies
View Related
Sep 21, 2006
I want to count the number of childnodes, when i run this script in mozilla i get a different total for the number of childnodes from numkids then when the script runs in IE. Why is this? How Can I get the same number. I want to loop though an objects child elements setting them to invisible or visible
<script type="text/javascript"><!--
function rec(n) {
var kids = n.childNodes;
var numkids = kids.length;
for(var i = numkids-1; i>=0; i--)
{
// sets child to hidden
alert(numkids);
alert(kids[i].nodeValue);
//kids[i].style.visibility = 'hidden'
}}
var a = document.getElementById('commentholder0');
// this function loops though the parts and makes then invisiable so you cant see them overlap
rec(a);
</script>
My html is here:
<ul id= "commentholder0" >
<li id="comment1">this is a test</li>
<li id="comment2">this 2 is a test</li>
</ul>
View 2 Replies
View Related
Jan 11, 2011
I need to find the length of the childNode "city" to a particular "region" in the below XML.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<Country Name="Singapore">
<Region Name="East">
<City Name="Pune">
<Dealer Name="XYZ" Type="A" Contact="9890455555" PinCode="123456"/>
<Dealer Name="ABC" Type="B" Contact="9890433333" PinCode="654321"/>
<Dealer Name="DEF" Type="A" Contact="9890422222" PinCode="867901"/>
</City>
<City Name="Mumbai">
<Dealer Name="dealer1" Type="A" Contact="9890455555" PinCode="123456"/>
<Dealer Name="dealer2" Type="B" Contact="9890433333" PinCode="654321"/>
<Dealer Name="dealer3" Type="A" Contact="9890422222" PinCode="867901"/>
</City></Region>
<Region Name="North">
<City Name="Delhi">
<Dealer Name="XYZ" Type="A" Contact="9890455555" PinCode="123456"/>
<Dealer Name="ABC" Type="B" Contact="9890433333" PinCode="654321"/>
<Dealer Name="DEF" Type="A" Contact="9890422222" PinCode="867901"/>
</City>
<City Name="Jammu">
<Dealer Name="dealer1" Type="A" Contact="9890455555" PinCode="123456"/>
<Dealer Name="dealer2" Type="B" Contact="9890433333" PinCode="654321"/>
<Dealer Name="dealer3" Type="A" Contact="9890422222" PinCode="867901"/>
</City></Region></Country>
Example the Region is East it has 2 cities below. I need to get this length using JS.
I tried doing x=xmlDoc.getElementsByTagName("City").length;
But it counts all the city elements present i.e. it returns 4. How to get the length of the "City" element particular to a "Region" element.
View 10 Replies
View Related
Apr 17, 2011
Is there a way in Javascript or Jquery to return an array of all objects underneath a certain point, ie. the mouse position. Basically, I have a series of images which link to various web pages but I have a large semi transparent image positioned over the top of the other images. I want to find the href of the background image that the mouse pointer clicks over.
View 1 Replies
View Related
May 15, 2010
Is there a way to calculate the .offsetLeft or .left of a character in a string relative the element that contains the string? I'm just trying to wrap each character in an element and position the characters independently, so I have to set the .position to absolute, and set the .left and .top on each element as I create it so I can move the elements later on.
View 1 Replies
View Related
Sep 5, 2009
Is there a better way to extend object with internal objects?
$.fn.bestShow = function(s) {
var d = {
width: 0,
height: 0,
order: "numeric",
orderBy: "",
[Code]...
View 3 Replies
View Related
Aug 3, 2005
I am trying to figure out how to use objects properties in my code so
when the page loads All my properties are in object where I can use
elsewhere in my page. Code:
View 2 Replies
View Related
Jan 3, 2006
I'm trying to use the following code to load xml files:
ImportXML = function (ts) {
this.file = ts;
if (document.implementation &&
document.implementation.createDocument) {
this.doc = document.implementation.createDocument("", "", null);
this.doc.obj = this;
this.doc.onload = this.callBack;
this.doc.load(this.file);
} else if (window.ActiveXObject) {
this.doc = new ActiveXObject("Microsoft.XMLDOM");
this.doc.onreadystatechange = this.ready;
this.doc.obj = this;
this.doc.load(this.file);
} else {
alert("Error");
}
}
ImportXML.prototype.ready = function () {
if (myDoc[counter].readyState == 4) this.obj.callBack();
}
ImportXML.prototype.callBack = function () {
alert('loaded');
}
var xmlDoc = new ImportXML("bar.xml");
The problem I'm having is with the second line that reads
this.doc.obj = this;
IE tells me that object doesn't support this property or method. How is
it possible to get a reference to the object (xmlDoc) in the prototypes
'ready' and 'callBack" with IE?
View 3 Replies
View Related
Jul 23, 2005
Where is the list of js objects (Anchor, Applet, document, etc)? It's not in the Netscape Guide or Core documents.
View 2 Replies
View Related
Jul 20, 2005
If you have a javascript interpreter running in an environment unknown
to you (as in what objects it exposes to the language) is it possible
to loop through all objects in some way?
This is a non-browser environment, specifically the scripting engine
for doing xslt extensions in msxml.
View 1 Replies
View Related
Jan 22, 2011
I have the following code:
var img = new Image();
img.myProperty = 'something';
I've tried Image.prototype.myProperty and a few other things. It seems IE just doesn't want me extending the Image object.
View 3 Replies
View Related
Jul 4, 2011
"When we combine FUNCTIONS with OBJECTS we get METHODS". Then he creates an empty ARRAY:
var a = [];
then he uses the "push() method" to add elements to the array.
a.push(1,2,3);
uh, methods are for *objects* right? Yet he is using them on an ARRAY.how an array can magically becomes an object that is manipulated by a "method"?I mean, the array is still an array, no? It never actually becomes an object, right? Yet we still use a *method* to manipulate it. See my conceptual quandry?
View 1 Replies
View Related
Mar 10, 2007
I've often write javascripts that use this rather common code to get all tags in an XHTML document:
var alltags = document.getElementsByTagName('*')
... and then use a for loop to access the elements as an array, for example:
for (i=0;i<alltags.length;i++) {
elementClass=alltags.className
[i]Do stuff
}
This has always seemed to work in the past, but I recently learned that the getElementsByTagName method returns a DOM NodeList, not an array. I'm currenly working on a project that needs to access the children of an element conditionally upon its class.
I have three questions. First: How do I declare a global variable to be a DOM NodeList object? It wouldn't be assigned until called from a function, so something akin to var elementList = document.getElementsByTagName() in my global declarations is out of the question. Is there something like var elementList = new NodeList() in javascript? (I know that I can assign it in a function without the var and it will be global, but other people may have to work with this code, and I'd like to have it clearly declared at the head of the program.)
Second question: Assuming alltags is a NodeList returned from a getElementsByTagName call, which of these is proper? This:
childElements = alltags[i].getChildNodes()
... or this:
childElements = alltags.item(i).getChildNodes()
And finally, which of the above techniques has better browser support?
View 6 Replies
View Related
Jun 20, 2007
I recently had a problem where I needed to build up an array of strings, that would be join()ed into a string when the array building was complete. however, each value could only be in the array once.
This was a problem for a few reasons. Once a value has gone into an array the only way to check for it that works cross-platform is to scan the array looking for the value. FireFox has the every() and some() functions but they don't work in anything else.
Using an object to simulate an assocaiative array would allow me to avoid this problem by storing key/values with the keys having the same value as the value I was storing. I could then use the (a in b) construct to check that I had not already added a value.
However, array type methods won't work with objects, so I had no access to size () or join () meaning I'd have to manually build the string by iterating over the object.
My solution was to use an array object, but to store the provided data i nboth the array proper and as a property of the array object.
var myArray = new Array;
function addVal (val)
{
if (!(val in myArray))
{
myArray [val] = 1;
myArray.push (val);
}
}
addVal ('one');
addVal ('two');
addVal ('three');
addVal ('one');
addVal ('two');
addVal ('three');
console.log (myArray.length);
console.log (myArray.join (', '));
This approach does use up more memory but it does give me the advantages of both arrays and objects for little extra work. (if you don't have FireBug then replace console.log with alert)
View 1 Replies
View Related
Dec 20, 2005
I know if I use this code:
var arrTD = document.getElementByType('td')
That arrTD will have an array of "HTML DOM TableData Objects".
Now what is the best way to access each object and see what it contains. I would like see which properties each object has and what their values are. I also guess there could be some other objects within the TD object and maybe even some events and methods.
Now I have been reading an on-line reference about DOM, but I think it is a little dated.
http://www.w3schools.com/htmldom/default.asp
For example I know that a <TD> can contain class="something" but I could not find a property called class, but it did list others like id, align etc.
I would like to learn how to access and view the contents of a DOM object.
View 11 Replies
View Related
Apr 22, 2010
I would like to have page which uses a few xhr objects and automatically (after 30 seconds) starts the same few requests again It works for me well in IE7, IE8, but not IE6 (where is in browsing history chosen option "automatically" ). It works there only for first time and I can't set it for circular reloading. It looks like page is reloaded, but xhr objects are not doing their job ...only - as I wrote - for first time after page load.
I have tried a lot of things:
- headers: no-caching
- window.reload(true)
- window.setInterval
- window.location.assign
View 9 Replies
View Related