创建jquery函数并将它们用于html元素?

时间:2012-07-24 12:58:07

标签: javascript jquery function

我试图在javascript中创建这个函数,但它不起作用,我对js有点新,所以我不知道我真的在这里做错了。

代码:

<div id="test">TESTING</div>

JS:

function animateDiv(div){

var text = $('#' + div + '"').text();

var doAnimate = function() {
    $('span').each(function() {
        var that = $(this);
        setTimeout(function() {
            that.animate({ fontSize: "90px" }, 1500 )
                .animate({ fontSize: "50px" }, 1500 );
        },that.index()*100);
    });
}

$('#' + div + "'").html('');

for(i=0; i<text.length; i++) {
  $('#' + div + "'").append('<span>'+text[i]+'</span>');
    if(i==text.length-1) doAnimate();
  }

}
  // using the function here to run animation on div test from html  
 animateDiv(test);

jsfiddle在这里:http://jsfiddle.net/aA8Un/3/

4 个答案:

答案 0 :(得分:1)

您必须使用单/双引号(如

)来调用该函数
animateDiv("test");

而不是

animateDiv(test);

从您的代码处删除“”'

所以将$('#' + div + '"')改为$('#' + div)

<强> Working Demo

答案 1 :(得分:1)

This现在可以使用了

function animateDiv(div){

var text = $('#' + div.id).text();

var doAnimate = function() {
    $('span').each(function() {
        var that = $(this);
        setTimeout(function() {
            that.animate({ fontSize: "90px" }, 1500 )
                .animate({ fontSize: "50px" }, 1500 );
        },that.index()*100);
    });
}

$('#' + div.id).html('');

for(i=0; i<text.length; i++) {
  $('#' + div.id).append('<span>'+text[i]+'</span>');
    if(i==text.length-1) doAnimate();
  }

}

 animateDiv(test);

实际上你试图通过这个$("#"+div)连接一个字符串和一个对象,这是错误的,你应该这样做$("#"+div.id)这是合法的。

答案 2 :(得分:0)

var text = $('#' + div + '"').text();

替换为

var text = $('#' + div).text();

答案 3 :(得分:0)

  1. animateDiv('test')

  2. 替代$('#' + div + '"') with $('#' + div)