是否有一种简单的方法可以使函数获取调用它的标记的ID?

时间:2014-12-23 21:00:03

标签: javascript function

我的代码如下:<div id = "trg" onclick = "swap()">。所以我的交换函数需要获取调用它的标记的ID。在这种情况下"trg"。我的功能就像:

function swap(){
    document.getElementById( this??? ).id = "trgClicked"; //I want to change its ID
    document.getElementById( this??? ).className = "trgClicked"; //and class
}

我知道我可以使用特定于元素的ID,但是我有很多这些按钮,如果我可以获得调用它的元素的ID,那将更简单。谢谢你的帮助!

4 个答案:

答案 0 :(得分:3)

您可以尝试此操作(使用inline事件this将无法按预期工作,如另一个答案中所述)

function swap(element)
{
    alert(element.id); // trg
}
<div id="trg" onclick="swap(this)">Click Me</div>

答案 1 :(得分:1)

这应该有用。

HTML

<div id = "trg" onclick = "swap.call(this)">

的javascript

function swap(){
    this.id = "trgClicked"; //I want to change its ID
    this.className = "trgClicked"; //and class
}

答案 2 :(得分:0)

您可以将其作为参数传递给函数

实际尝试这个 Get ID of element that called a function

答案 3 :(得分:0)

我相信您正在询问如何使用函数轻松更改元素的id或类。 这对于id来说是完美的。

function switched(element, attrToChange, newAttribute){
    var selection = document.getElementById(element);
    var attr = selection.setAttribute(attrToChange, newAttribute);
}

switched('scores', 'id', 'scored');

另一个用于课程改变

function switched(element, attrToChange, newAttribute){
    var selection = document.getElementsByClassName(element)[0];
    var attr = selection.setAttribute(attrToChange, newAttribute);
}

switched('scores', 'id', 'scored');