元素id未被接受为函数参数

the element id is not being accepted a function parameter?

本文关键字:函数 参数 id 元素      更新时间:2024-02-11

im试图将参数传递给一个函数,即

 animateDiv(div) {
  .....
}

这个函数有效,但当我试图像这样向它传递参数时,它无法工作,即

$activeToggle.toggle("slow", function(){
            $(this).find(".anime_yellow").each(function (i,e){
            console.log(e.id); // this prints simple
            animateDiv(simple); // this works
            animateDiv(e.id);   //this deosnt work but it prints 'simple' 

         });

当我将核心值传递给它工作的函数,即animateDiv(simple)时,如果我试图放入一个包含相同内容的变量,它将无法工作animateDiv(e.id),这要归功于

完整代码如下:http://jsfiddle.net/Fwhtv/22/

您的animateDiv假设您将传入一个对象。注意以下几行:

function animateDiv(div){
   var text = $('#' + div.id).text(); //div is assumed to be a div element

如果你想通过id,你必须将其更改为:

function animateDiv(divId){
   var text = $('#' + divId).text();

当然,也要更新div.id的其他引用。

工作:http://jsfiddle.net/Fwhtv/22/

从您的jsfiddle:

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

您正在传递ID,但在函数中您需要元素。

$activeToggle.toggle("slow", function(){
      $(this).find(".anime_yellow").each(function (i,e){
            console.log(e.id); // this prints simple
            animateDiv(simple); // this works
            animateDiv(e.id);   //this deosnt work but it prints 'simple' 

         });

在函数(i,e)中,e是元素。

<span id="simple" class="anime_yellow">

要获得的id,您需要使用$(e).attr('id');

animateDiv($(e).attr('id'));

当前您将参数作为对象传递。如果传递对象(span)的id,则需要按如下方式更改span的id。

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