2013-09-23 77 views
0

我正在爲表單驗證做一個插件作爲練習,但由於某種原因,我創建了一個h2元素並嘗試設置它的屬性後,它不起作用。這裏是代碼setAttribute不起作用

var testing = function(regex, value, error_msg, error_msg_field_id){ 
     var pattern = new RegExp(regex); 
     if (!pattern.test(value)){ 
      var ele = document.createElement("H2"); 
      var node = document.createTextNode(error_msg); 
      ele.setAttribute('style', 'color:white'); 
      alert("hi"); 
      jQuery(error_msg_field_id).append(node); 
     } 
    } 

文本顯示沒有問題,但它不是白色的。這對我來說毫無意義

+1

'ele.style.color = white;'? – Ohgodwhy

+0

是啊我也嘗試過,但沒有工作,它甚至不提醒(嗨) – user308553

+0

那麼你的條件聲明很可能不會觸發。 – Ohgodwhy

回答

3

您正在使用setAttribute,但您正在設置h2元素的屬性,即從未實際在您的DOM中插入

你可以改變和簡化代碼的相關部分:

var ele = document.createElement("H2"); 
ele.textContent = error_msg; 
ele.setAttribute('style', 'color:white'); 
jQuery(error_msg_field_id).append(ele); 

的jQuery的使用這裏也沒有必要。您可以簡單地使用

document.querySelector("#" + error_msg_field_id).appendChild(ele); 

這同樣簡單。

+0

嗨,是否有使用,而不是jQuery的優勢? – user308553

+3

1.你不需要jQuery;)這意味着你可以避開包括近100k的庫。 2.使用本地javascript幾乎肯定比通過jQuery更快。 3.你可以感覺很好,因爲你使用原生JavaScript來獲取其他人轉向圖書館的東西。 –

+0

唯一一次遇到麻煩的是使用IE7或更低版​​本,因爲這些不知道[querySelector](https://developer.mozilla.org/en-US/docs/Web/API/Element.querySelector) –