如何从另一个函数中获取elementID

时间:2015-01-21 17:42:21

标签: javascript imagemap

我有一些代码:

function new_training() {
document.getElementById("training").style="";
tr++;
var newDiv = $('#training div:first').clone();
newDiv.attr('id', tr);
var delLink = 'This is item ' + tr + '<select name=priority> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <a class="btn btn-danger" style="text-align:right;margin-right:65px" href="javascript:deltr(' + tr + ')" > Delete Item ' + tr + ' </a>';
newDiv.find('tr:first th').text('Item ' + tr);
newDiv.append(delLink);
$('#training').append(newDiv);
newDiv.find('input:text').val('');
}

哪种工作做得好。

我想要做的是获取我点击的元素的id形成图像映射。

<area id="cupandplates" alt="" title="cupandplates" href="javascript:new_training()" shape="rect" coords="212,127,295,196" style="outline:none;" target="_self"     />
<area id="3cups" alt="" title="3cups" href="javascript:new_training()" shape="rect" coords="313,147,415,201" style="outline:none;" target="_self"     />
<area id="beerstines" alt="" title="beerstines" href="javascript:new_training()" shape="rect" coords="200,231,269,290" style="outline:none;" target="_self"     />

如果我使用这个功能:

function reply_click(clicked_id)
{
alert(clicked_id);
}

改变我的区域

<area id="cupandplates" alt="" title="cupandplates" href="javascript:new_training()" onClick="reply_click(this.id)" shape="rect" coords="212,127,295,196" style="outline:none;" target="_self"     />
<area id="3cups" alt="" title="3cups" href="javascript:new_training()" onClick="reply_click(this.id)" shape="rect" coords="313,147,415,201" style="outline:none;" target="_self"     />
<area id="beerstines" alt="" title="beerstines" href="javascript:new_training()" onClick="reply_click(this.id)" shape="rect" coords="200,231,269,290" style="outline:none;" target="_self"     />

它将提醒正确的ID

我现在得到的是:

这是第1项删除第1项

这是第2项删除第2项

这是第3项删除第3项

我不知道要改变什么才能让它变得如此:

这是cupandplates删除项目1

这是3件删除第2项

这是beerstines删除第3项

任何帮助都会很棒。

2 个答案:

答案 0 :(得分:0)

调用时需要将ref传递给元素:

<area id="cupandplates" alt="" title="cupandplates" href="javascript:new_training(this)" shape="rect" coords="212,127,295,196" style="outline:none;" target="_self"     />
<area id="3cups" alt="" title="3cups" href="javascript:new_training(this)" shape="rect" coords="313,147,415,201" style="outline:none;" target="_self"     />
<area id="beerstines" alt="" title="beerstines" href="javascript:new_training(this)" shape="rect" coords="200,231,269,290" style="outline:none;" target="_self"     />

然后在javascript函数中,使用ref as:

function new_training(el)
{
  var id = el.getAttribute("id");
  //use the id
}

如果您想直接传递ID,请尝试这样:

<area id="cupandplates" alt="" title="cupandplates" href="javascript:new_training(this.id)" shape="rect" coords="212,127,295,196" style="outline:none;" target="_self"     />

希望有所帮助

答案 1 :(得分:0)

你几乎解决了自己的问题。

看起来您正在从area元素中查找title属性值 而不是传递id传递事件触发器对象作为一个整体

<area id="cupandplates" alt="" title="cupandplates" href="javascript:new_training()" onClick="reply_click(this)" shape="rect" coords="212,127,295,196" style="outline:none;" target="_self"     />
<area id="3cups" alt="" title="3cups" href="javascript:new_training()" onClick="reply_click(this)" shape="rect" coords="313,147,415,201" style="outline:none;" target="_self"     />
<area id="beerstines" alt="" title="beerstines" href="javascript:new_training()" onClick="reply_click(this)" shape="rect" coords="200,231,269,290" style="outline:none;" target="_self"     />

然后使用

访问标题
function reply_click(element)
{
  alert(element.getAttribute("title"));
}