使用onClick获取javascript中单击按钮的ID

时间:2014-03-28 13:28:33

标签: javascript html onclick

我也交换按钮的值和按钮的.innerHTML,但是以一种有效的方式进行。 像这样:

function btnswap2()
{

    var soft=document.getElementById('1');
    var hard=document.getElementById('2');

    var temp;
    var temp1;
    var flag=0;

    if(soft.id==1)
        {
            temp1=soft.innerHTML;
            soft.innerHTML=hard.innerHTML;
            hard.innerHTML=temp1;

            temp=soft;
            soft=hard;
            hard=soft;

            showHARD();
        }
}

现在我可以在运行时点击按钮的ID,因为您可以看到每次单击按钮时按钮都会被交换。 问题是我必须在这里调用一些其他函数(在这种情况下,如果它很难,那么它应该很难,应该调用其他函数)

  showHARD();
  showSOFT();

我怎样才能实现这一目标? 我的丁字号如下:      BTN:ID

 SOFT: 1
 HARD: 2
 TRAI: 3
 STAT:4 

2 个答案:

答案 0 :(得分:0)

尝试将类添加到静态按钮:

<button id="1" >button1</button>
<button id="2" >button2</button>
<button id="3" >button3</button>
<button id="4" class="static" >button4</button>

然后使用jQuery:

$(document).ready(function(){
 $("button").click(function(){

  if($(this).hasClass("static")){
   showSTAT();
  }else{
   btnswap2(this); 
   if($(this).attr("id")=="1")
    showSOFT();
   else if($(this).attr("id")=="2")
    showHARD();
   else
    showTRAI();
  }
 });
});


function btnswap2(btn){

var stat=$('button.static');

var temp;

temp=btn.html();
btn.html(stat.html());
stat.html(temp1);

stat.removeClass("static");
btn.addClass("static");
}

不要在btnswap2()函数中调用showSOFT()或showHARD()!

通过这种方式,您将始终获得静态按钮,只有在交换的按钮不是静态时它才会交换。

答案 1 :(得分:0)

我想你想做的是这样的事情:

<强> HTML

--------
static:
--------
<div id="1" >button A</div>

--------
live:
--------
<div id="2" onClick="btnswap2(this.id)">button B</div>
<div id="3" onClick="btnswap2(this.id)">button C</div>
<div id="4" onClick="btnswap2(this.id)">button D</div>

<强>的JavaScript

function btnswap2(id){
    var temp = document.getElementById("1").innerHTML; // static button
    var clicked_label = document.getElementById(id).innerHTML;
    document.getElementById("1").innerHTML = clicked_label;
    document.getElementById(id).innerHTML = temp;
}

小提琴在这里:http://jsfiddle.net/n5UDu/6/

希望这有帮助。