关于Js对页面进行渲染

2015-12-30  本文已影响900人  jnunp

先做一个测试代码
当前代码测试 页面中虽然会出现三个input标签
但是第三个无法被js进行渲染
也就是说input内所输出的内容并不是红色的而是默认的黑色

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
   <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
   <title>Document</title>
   <script src="http://libs.baidu.com/jquery/1.8.3/jquery.min.js"></script>
</head>
<body>
   <input type="text" class="fuck" />
   <input type="text" class="fuck" />
   <script>
       $('fuck').css('color', 'red');
       var str =$("<input class=\"fuck\">");
       $('body').append(str);
   </script>
</body>
</html>

而稍微切换下js的顺序
input就可以正常渲染

   <script>
       var str =$("<input class=\"fuck\">");
       $('body').append(str);
       $('fuck').css('color', 'red');
   </script>

总结:

页面添加的内容要进行渲染,就一定要在渲染的js之前插入所需要进行渲染的内容
ajxa或datatable进行渲染的页面添加需要js渲染的代码时
需要通过回调函数对页面进行二次渲染

代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
   <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
   <title>Document</title>
   <script src="http://libs.baidu.com/jquery/1.8.3/jquery.min.js"></script>
</head>
<body>
   <input type="text" class="fuck" />
   <input type="text" class="fuck" />

   <script>
       init($('.fuck'));
       function init(obj){
           obj.css('color', 'red');
       }//渲染页面中的boj(对象)的color

       var str =$("<input class=\"fuck\">");  
       $('body').append(str);//   对页面进行添加一个html
       init(str);//进行重新渲染


   </script>
</body>
</html>

涉及理解:异域(2015.12.30)

上一篇下一篇

猜你喜欢

热点阅读