This seems like something that should be straightforward but I'm a newbie with Javascript, so please be patient.
I want to include a script file but only if an element exists on the page. I've tried:
var element = $('.customelement');
if(element.length() > 0) {
$('head').append('<script language="javascript" src="custom.js"></script>');
}
But this doesn't work and returns the error:
Uncaught TypeError: Property 'length' of object [object Object] is not a function
I have found many posts which say this should work so I'm a little stumped. I was also wondering if there is a better way to do this?
This seems like something that should be straightforward but I'm a newbie with Javascript, so please be patient.
I want to include a script file but only if an element exists on the page. I've tried:
var element = $('.customelement');
if(element.length() > 0) {
$('head').append('<script language="javascript" src="custom.js"></script>');
}
But this doesn't work and returns the error:
Uncaught TypeError: Property 'length' of object [object Object] is not a function
I have found many posts which say this should work so I'm a little stumped. I was also wondering if there is a better way to do this?
Share Improve this question edited Apr 12, 2013 at 12:23 dsgriffin 68.6k17 gold badges140 silver badges138 bronze badges asked Apr 12, 2013 at 11:57 MillyMonsterMillyMonster 5564 silver badges21 bronze badges3 Answers
Reset to default 7By length()
, I believe you meant length
(It's a Javascript property, not a jQuery function):
if(element.length > 0) {
$('head').append('<script language="javascript" src="custom.js"></script>');
}
As the error message states, length
is a property but not a function:
if (element.length > 0) {
Exactly what the error says. length
is a property, not a function. Remove the ()
.