javascript - How to include a script tag only if an element exists? - Stack Overflow

admin2025-03-19  2

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 badges
Add a ment  | 

3 Answers 3

Reset to default 7

By 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 ().

转载请注明原文地址:http://conceptsofalgorithm.com/Algorithm/1742389088a211148.html

最新回复(0)