2013-09-23 45 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) –