2011-09-22 38 views
0

如何删除应用于单击事件上的文本框的样式类?我使用getElementsByName()调用文本框元素。这里是我的代码:如何删除样式单击事件?

<input id="userNameExists" name="popUpText" class="pop-upText" onclick="clearText(this);" /> 

function clearText(element) 
{ 
       id = element.getAttribute("id"); 
       var textElement = document.getElementById(id); 
       textElement.value = ""; 
       var element = document.getElementsByName("popUpText"); 
       var count = 0; 
       for (count = 0; count < 2; count++) { 
        var id = element.item(count); 
        id.classname = ""; 
       } 
} 

在上面的脚本中,我没有得到变量id中的id。现在这些值就像“#inputTextBoxName”。请帮忙。

+0

学习如何使用jQuery做这个检查这一个:http://stackoverflow.com/questions/955030/remove-css-from-a-div-using-jquery –

+1

你的函数的前两行是多余的:该函数的'element'参数已经包含对clicked元素的引用,所以获取其id并将其传递给'getElementById()'只是获得对同一事物的引用,使得'element'和'textElement'指向在相同的输入。另外,我会避免(重新)声明与参数同名的变量。最后'.classname'应该是'.className'(大写N)。 – nnnnnn

回答

1

可以使用removeClass();

可以manege使用attr();

EXP你的造型:

$("#yourid").attr("style","float: right"); 

或使用

删除类
$("#yourid").removeClass("yourClass"); 
+0

如何使用getElementsByName重置类,如下所示element = document.getElementsByName(“popUpText”); id = element.item(0)将返回id。对于变量'id',我该如何重置类? – NewBie

+0

如果你想从变量id = $(“#”+ id).removeClass(“yourClass”); –

0

它是区分大小写,因此

id.className = ''; 
0

如果您尝试从文本框中删除类,当您单击文本框本身时,该代码远远超过了它的需要。

HTML:

<input type="text" id="userNameExists" name="popUpText" class="pop-upText" onclick="clearText(this);" /> 

的Javascript:

<script> 
function clearText(element) { 
    element.className = ''; 
    element.value = ''; 
} 
</script> 

尽管如此,内联事件处理程序(即宣告你的HTML元素的属性onclick)是一个不好的做法进入。另外,如果你传递一个元素的引用,得到它的id,然后用上述id调用document.getElementById(),你最终会得到两个对同一元素的引用。是的,它应该工作,但完全没有意义。