By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
460,045 Members | 1,367 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 460,045 IT Pros & Developers. It's quick & easy.

Firefox doesn't like appendChild()

P: n/a
I have 2 list boxes - one to fill the second one based on the selection, or
move all items. You can remove the selection (or all items) from the second
one to place it back in the first one. I expanded my horizons and thought
to use script based on the js node operation appendChild(). It seemed so
clean and easy to follow. Works beautifully in IE, but Firefox sees the
value for a nanosecond but doesn't put it in the box. This is the relevant
js:

function addSide(){
var addIndex = document.forms[0].sides.selectedIndex;

if (addIndex >= 0)
{
document.forms[0].selectedSides.appendChild(document.forms[0].sides.options(addIndex));
}

}

function delSide(){
var selIndex = document.forms[0].selectedSides.selectedIndex;
if (selIndex >= 0)
{
document.forms[0].sides.appendChild(document.forms[0].selectedSides.options(selIndex))
}

}

function addAll(){
var len = document.forms[0].sides.length -1;
for(i=len; i>=0; i--){
document.forms[0].selectedSides.appendChild(document.forms[0].sides(i));
}

}

function delAll(){
var len = document.forms[0].selectedSides.length -1;
for(i=len; i>=0; i--){
document.forms[0].sides.appendChild(document.forms[0].selectedSides(i));
}

}

Is there a way to make it work for FF, or do I need to just start over and
not use appendChild()? Is there a better way?

Thanks,

Christina
Nov 19 '06 #1
Share this Question
Share on Google+
2 Replies


P: n/a
Christina wrote:
I have 2 list boxes - one to fill the second one based on the selection, or
move all items. You can remove the selection (or all items) from the second
one to place it back in the first one. I expanded my horizons and thought
to use script based on the js node operation appendChild(). It seemed so
clean and easy to follow. Works beautifully in IE, but Firefox sees the
value for a nanosecond but doesn't put it in the box.
Did you get an error message in the error console? Get the Firebug
extension and you will won't miss them.

<URL: https://addons.mozilla.org/firefox/1843/ >
This is the relevant
js:

function addSide(){
var addIndex = document.forms[0].sides.selectedIndex;

if (addIndex >= 0)
{
document.forms[0].selectedSides.appendChild(document.forms[0].sides.options(addIndex));
This should produce an error message something like:

"document.forms[0].sides.options is not a function"
The options object is a collection, you want to refer to its members by
index using square bracket notation:

...appendChild( document.forms[0].sides.options[addIndex] );

and so on for the rest of your script.
--
Rob

Nov 19 '06 #2

P: n/a
Hi Rob,

Perfect. I knew it had to be something simple - wonder why the original
code used parens rather than brackets? Good ol' IE - it'll accept anything
:-) Thanks for the link - I haven't used FF much but need to start because
I've seen that it has what appear to be good extensions. Never used IE until
3 years ago - always used Netscape - but my college required IE for online
classes and got in the habit.

Thanks a bunch,
Christina

"RobG" <rg***@iinet.net.auwrote in message
news:11*********************@k70g2000cwa.googlegro ups.com...
>
The options object is a collection, you want to refer to its members by
index using square bracket notation:

...appendChild( document.forms[0].sides.options[addIndex] );

and so on for the rest of your script.
--
Rob

Nov 19 '06 #3

This discussion thread is closed

Replies have been disabled for this discussion.