2011-09-22 40 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(),你最終會得到兩個對同一元素的引用。是的,它應該工作,但完全沒有意義。