"未捕获的TypeError:undefined不是函数" jQuery每个函数问题

时间:2014-07-15 07:25:18

标签: javascript jquery

这是一个非常基本的问题。我有这段代码,我认为这样可以,但它会引发错误......

Uncaught TypeError: undefined is not a function 

以下是有问题的代码

$('.colourbox').each(function(i){
// select visible children
var visibleDivs = $(this).children('div').length;

// use whatever width calculation you'd like...
var targetWidth = 300 / visibleDivs.length - 1;

// apply the width to the divs
visibleDivs.width(targetWidth);
});

由于

2 个答案:

答案 0 :(得分:6)

visibleDivs是一个数字:

var visibleDivs = $(this).children('div').length;

因此它没有width函数使该行失败:

visibleDivs.width(targetWidth);

你可能想要

$('.colourbox').each(function(i){
   // select visible children
   var visibleDivs = $(this).children('div');

   // use whatever width calculation you'd like...
   var targetWidth = 300 / visibleDivs.length - 1;

   // apply the width to the divs
   visibleDivs.width(targetWidth);
});

但您应该自己使用the developer tools of your browser解决此问题:

  1. 查看控制台中给出的错误的确切行
  2. 如果这还不够,请调试并一行一行地查看变量的值

答案 1 :(得分:0)

变量visibleDivs具有多个子div的值。

var visibleDivs = $(this).children('div').length;

你可能不会有一个儿童div列表:

var visibleDivs = $(this).children('div');

完整示例:

$('.colourbox').each(function(i){
    // select visible children
    var visibleDivs = $(this).children('div');

    // use whatever width calculation you'd like...
    var targetWidth = 300 / visibleDivs.length - 1;

    // apply the width to the divs
    visibleDivs.width(targetWidth);
});