从HTML调用js函数无法正常工作

时间:2013-07-04 13:41:25

标签: javascript html

我正在尝试在HTML-Page中使用一些javascript代码,但是无法正常工作(Ruby on Rails项目中的所有内容)。 所以我有以下HTML代码

   <a href="#" compilation_id = 51 onclick="start_render(this)">Render</a>

我需要的是在js-function

中获取参数“compilation_id”
  <script type="text/javascript" language="javascript">

  function start_render(event){  
         var comp_id = $(event.target).attr('compilation_id');
         alert(comp_id);
  .....

我只使用alert(comp_id)进行调试,以便查看是否可以正确获取数据。但我得到的是“未定义”。当我在js-function中设置变量的值时,一切都OK。所以,

  var comp_id = 51;
  alert(comp_id); 

运作良好,我得到“51”。

我的错误是什么?

提前致谢。

2 个答案:

答案 0 :(得分:0)

您正在传递this对象,该对象没有目标属性。

如果您想获得event目标,请将代码更改为

 function start_render(object){
     event = event || window.event 
     var comp_id = $(event.target).attr('compilation_id');
   ...
 }

答案 1 :(得分:-2)

试试这个:

onclick="start_render(event)"

JS:

function start_render(e){  
     var comp_id = $(e.target).attr('compilation_id');
     alert(comp_id); 

onclick="start_render(this)"

JS:

function start_render(element){  
     var comp_id = $(element).attr('compilation_id');
     alert(comp_id); 

onclick="start_render()"

JS:

function start_render(){  
     var comp_id = $(event.target).attr('compilation_id');
     alert(comp_id);

onclick="start_render.call(this)"

JS:

function start_render(){  
     var comp_id = $(this).attr('compilation_id');
     alert(comp_id);

最佳方式:

<a href="#" compilation_id="51" id="compilation51">Render</a>

JS:

$('#compilation51').bind('click', function(){
     var comp_id = $(this).attr('compilation_id');
     alert(comp_id);
});