最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

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

programmeradmin0浏览0评论

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

发布评论

评论列表(0)

  1. 暂无评论