按钮onclick id更改无法使用javascript在Html中工作

时间:2017-11-30 19:48:57

标签: javascript jquery html

我想使用onclick按钮更改textarea的ID。所以我在我的领域创建了两个按钮。每次点击都会运行一个功能。

问题:它只是第一次替换我的id而第二次当我点击第二个按钮时它会抛出错误说" Uncaught TypeError:无法设置属性' id' of ti_pos_fun(index.html:491)"

HTML code-
<div>
<label for="usr">ti:</label> <i class="glyphicon glyphicon-check" onclick="ti_pos_fun()"></i> <i class='glyphicon glyphicon-unchecked' onclick="ti_neg_fun()"></i>
</div>

我正在尝试使用两个按钮 - 例如

现在,当您点击检查按钮时,会运行onclick功能&#34; ti_pos_fun&#34;。

功能如下

function ti_neg_fun ()
{
var a = document.getElementById("jsel");
a.id = "ti_neg";
//$("#ti_neg").text('angry');
document.getElementById('ti_neg').innerHTML = 'angry';
}
function ti_pos_fun ()
{
var a = document.getElementById("jsel");
a.id = "ti_pos";
 document.getElementById('ti_pos').innerHTML = 'hahahahaha';
 //$("#ti_pos").text('hahahaha');

}

这些ID正在进行的Textarea代码&amp;他们的文字。

<div class="col-md-10">
    <H3> textarea</H3>
    <textarea id = "jsel"></textarea> 
    </div>
  1. 您点击按钮1 - 检查按钮
  2. 它在textarea中获取id和文本
  3. 当您点击按钮2-取消选中按钮
  4. 失败

2 个答案:

答案 0 :(得分:3)

它不能在第二次点击时工作,因为你要覆盖该元素的id

//a.id = "ti_neg";

所以在第二次点击时没有标识为jsel的元素,并且下面的语句将返回null并且它将不起作用。

document.getElementById("jsel");

&#13;
&#13;
function ti_neg_fun ()
{
var a = document.getElementById("jsel");
//a.id = "ti_neg";
//$("#ti_neg").text('angry');
document.getElementById('jsel').innerHTML = 'angry';
}
function ti_pos_fun ()
{
var a = document.getElementById("jsel");
//a.id = "ti_pos";
 document.getElementById('jsel').innerHTML = 'hahahahaha';
 //$("#ti_pos").text('hahahaha');

}
&#13;
<div>
<label for="usr">ti:</label> <i class="glyphicon glyphicon-check" onclick="ti_pos_fun()">1</i> <i class='glyphicon glyphicon-unchecked' onclick="ti_neg_fun()">2</i>
</div>

<div class="col-md-10">
    <H3> textarea</H3>
    <textarea id = "jsel"></textarea> 
    </div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

那是因为ID不再是jsel你需要这样的东西,如果它找不到jsel检查ID其他功能集,反之亦然。编辑:添加了有效的剪辑。

Foo<T>
T