将参数传递给另一个函数并传入innerHTML

时间:2015-08-12 00:03:45

标签: javascript html parameter-passing

我已经建立了自己的灯箱,而且工作得很好。我建立了自己的,因为我需要它没有框架,并且在我建造的游戏中也能很好地工作。但是,我遇到了一个问题,我相当肯定这很简单,但对我来说却相当令人烦恼。我遇到的问题是参数" slideName"并将其传递给" fillRightButton()"功能。



var createSlidebox = function(cancelButton, bannerImg, slideName) {
	fillRightButton("nextSlide",slideName);
};




这是该功能的一部分:



var fillRightButton = function(rightButtonType, rightDestination) {

  if (rightButtonType === "nextSlide") {
    document.getElementById("lightbox_fright").innerHTML = '<a onclick="changeSlide(' + rightDestination + ')">Next</a>';
  }
}
&#13;
&#13;
&#13;

&#34; fillRightButton()&#34;函数在直接调用时执行正常,如果直接输入参数,此代码可以正常工作:

&#13;
&#13;
var createSlidebox = function(cancelButton, bannerImg, slideName) {
  fillRightButton("nextSlide", "mySlideName");
};
&#13;
&#13;
&#13;

但是,如果没有引号,它会呈现为:

&#13;
&#13;
<a onclick="changeSlide([object Object])">Next</a>
&#13;
&#13;
&#13;

带有&#34;未捕获的SyntaxError:意外的标识符&#34; JS错误。我该如何解决这个问题?谢谢!

1 个答案:

答案 0 :(得分:0)

使用data属性在函数调用

中使用jQuery存储对象
var fillRightButton = function(rightButtonType, rightDestination) {
  if (rightButtonType === "nextSlide") {
    document.getElementById("lightbox_fright").innerHTML = '';
    // document.getElementById("lightbox_fright").innerHTML = '<a onclick="changeSlide( $(this).data('dest') )">Next</a>';
    var a = document.createElement('a');
    a['data-dest'] = rightDestination;
    a.onclick=function(){changeSlide( this['data-dest']); }
    a.innerHTML = 'Next';
    document.getElementById("lightbox_fright").appendChild(a);
    //document.getElementById('lightbox_fright > a').data({'dest':rightDestination});
  }
}

使用jQuery(如果尚未包含)

PS更新w / o jQuery请试一试让我知道它是否有效,推荐使用jQuery