我正在尝试在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”。
我的错误是什么?
提前致谢。
答案 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);
});