posts - 15,comments - 65,trackbacks - 0
     摘要:         本文最先发表在本人的个人博客http://www.lovestblog.cn         先把题目晒出来,这个题目不是很难,但是当时仅仅因为输出的问题折腾了我大半天,在ACM提供的运行环境中只有到最后才能把结果输出,不能在中途就把结果输...  阅读全文
posted @ 2009-05-26 11:00 你假笨 阅读(1744) | 评论 (0)编辑 收藏
                  本文最先发表在本人个人java+flex技术博客http://www.lovestblog.cn,欢迎大家光临。(转载的请不要删除该行,谢谢合作)
    这两天接了一个网站,比较简单两三天就基本搞定了,但是其中碰到最难的就是flex的一个中文问题了,下面我主要想讲讲三种不同的现象。 
  •     第一种:    Image组件的源地址是中文的,比如resources/数学/高等数学/math.jpg; 
       tomcat中的server.xml中配置端口的那段加上 URIEncoding="utf-8"; 
       直接访问资源地址如:http://localhost:8080/WebTest/resources/数学/高等数学/math.jpg; 
       这种情况下Image组件不能显示出来,下面直接访问的地址能访问到数据。 
  •    第二种:    Image组件的源地址是GBK的,比如比如resources/数学/高等数学/math.jpg; 
       tomcat中的server.xml中配置端口的那段加上 URIEncoding="GBK"; 
       直接访问资源地址如:http://localhost:8080/WebTest/resources/数学/高等数学/math.jpg; 
       这种情况下Image组件式能显示出来的,但是直接访问的那个地址是不能访问到数据的。 
  •    第三种:   mage组件的源地址是utf-8的,比如resources/%E6%95%B0%E5%AD%A6/%E9%AB%98%E7%AD%89%E6%95%B0%E5%AD%A6/math.jpg; 
      tomcat中的server.xml中配置端口的那段加上 URIEncoding="utf-8"; 
      直接访问资源地址如:http://localhost:8080/WebTest/resources/数学/高等数学/math.jpg; 
        这种情况下Image组件式能显示出来的,直接访问的那个地址是也能访问到数据。 

    原因分析: 
      浏览器默认的编码方式是utf-8的,flex中地址默认是采用utf-8的,而tomcat默认的编码方式是ISO-8859-1的,即我们访问的地址都是iso-8859-1编码的,如果不设置tomcat中的编码方式即为默认的iso-8859-1方式,那么浏览器中的请求地址中的中文是不能被解析的,所以请求不到资源,因此,我们通过设置tomcat的编码方式为utf-8即可以通过浏览器访问到含有中文名的资源。同理默认情况下flex组件也访问不到带有中文路径的资源; 
      如果tomcat设置为utf-8的,我们可以访问http://localhost:8088/EncodingTest/resource/未命名.jpg类似的地址,但是对于flex中<mx:Image source="resources/体育/足球/1.jpg" />这样的组件还是显示不出来(这点我也疑惑,还望高人指点),但是我们设置为<mx:Image source="resources/%E4%BD%93%E8%82%B2/%E8%B6%B3%E7%90%83/1.jpg" />这样我们就能访问到了。 
      如果tomcat编码方式设置为GBK的话,对于flex组件<mx:Image source="resources/体育/足球/1.jpg" />我们是可以访问到的,但是对于<mx:Image source="resources/%E4%BD%93%E8%82%B2/%E8%B6%B3%E7%90%83/1.jpg" />这样的我们是访问不到的,对于浏览器中的地址http://localhost:8088/EncodingTest/resource/未命名.jpg,我们是访问不到的,但是对于我们把未命名进行GBK编码之后的%CE%B4%C3%FC%C3%FB替换了,即http://localhost:8088/EncodingTest/resource/%CE%B4%C3%FC%C3%FB.jpg就能访问了。至于如何取得中文的GBK编码我们可以通过java方法取得,比如String s="未命名.jpg";s=java.net.URLEncoder.encode(s,"GBK");这样就取得了“未命名.jpg”的GBK编码了。 

      总结如下: 
       总结出了一个基本解决中文编码的方法,即tomcat中设置编码为utf-8,flex中组件要访问资源的路径如果带有中文那么我们去把中文转换成utf-8格式的在赋值给组件的source属性,对于浏览器中访问的地址就可以是带有中文的访问地址了。
posted @ 2009-04-30 01:35 你假笨 阅读(1699) | 评论 (1)编辑 收藏
       本文最初发布于本人的flex博客http://www.lovestblog.cn/,欢迎大家光临。(转载的请不要删除该行,谢谢合作)
我们都知道jQUery对象中有一个类数组的元素包装集,该集合类似js中的数组一样拥有length属性,因此我们称此为类数组,下面我们就来总结下这个jQuery对象中的类数组时如何进行操作的,看看我们的jQuery为我们都提供了哪些可用的方法:
   
size():很明显,它应该是返回包装集中的元素个数,如$('a').size()表示链接元素的个数;
get(index):当没指定index时就默认取包装集中所有元素,并以js中的数组形式返回,如果指定了index,则返回下标为index对应的元素,如$('img[title]').get(0)返回包含属性title的第一个img元素,其也等效于$('img[title]')[0];
index(elem):在包装集中返回元素elem所在的下标,如果没找到该元素则返回-1;
add(String|elem|Array):把参数中的元素添加到包装集中,如果参数是jQuery选择器,那么将把所有匹配的对象都添加到集合中,如果是html元素那就通过clean方法得到的元素数组添加到集合中,如果是dom元素或dom元素数组,那就直接添加到集合了;注意返回的是添加后的包装集;如$('img[alt]','img[title]')等效于$('img[alt]').add('img[title]')即返回包含了alt属性的img元素或包含了title属性的img元素;
not(String|elem|Array):把包装集中满足参数条件的元素删除,注意参数只能是筛选表达式,即以"["或者":"开头的表达式,如$('img[title]').not('title*=puy')即返回包含title属性的img元素,并且这些元素的title属性中包含有puy文本;返回的是筛选之后的包装集;
filter(String|function):如果传入的参数是String类型的话,那么该表达式必须也是筛选表达式,用于从包装集里删除所有与选择器不匹配的元素;如果传入的是一个函数的话,那么包装集中的每个元素都调用这个函数,若这个函数返回false则把这个元素从包装集中删除,而在函数中可以通过this关键字来调用当时包装集中调用方法的元素;如$('td').filter(function(){return this.innerHTML.match(/^"d+$/)})返回td中的内容为数字的所有td元素;
slice(begin,end):创建并返回新的包装集,该包装集是原来包装集的连续的一部分,且新包装集的第一个元素是原包装集中的begin位置的元素,而最后一个元素是end位置元素的前一元素,当然end可以不指定,那么将延伸到原始包装集的末尾;如$('*').slice(2,3)这个语句选择页面上的所有元素,然后生存包含原始包装集的第三个元素的新包装集,注意这个$('*').get(2)不同,这个返回的是元素,而slice方法返回的是包装集,从而拥有包装集的操作;
childen():返回原始包装集元素的所有不同子元素所组成的新包装集(不包含文本节点),如$('div').children()返回所有div元素下的子元素所组成的新包装集;如果指定了参数,那么该参数也是筛选表达式;
contents():返回原始包装集元素的内容新包装集(可以包含文本节点);注意此方法不能接受参数进行过滤;
next():返回原始包装集元素的所有唯一的下一个兄弟元素所组成的新包装集;如果指定了参数,那么该参数也是筛选表达式;如$('div#someDiv').next()返回包含id为someDiv的div元素的下一个兄弟元素的包装集;如果指定了参数,那么该参数也是筛选表达式;
nextAll():返回包含原始包装集元素的所有后续兄弟的新包装集;如$('div#someDiv').nextAll()返回包含id为someDiv的div元素的后面兄弟元素的新包装集;如果指定了参数,那么该参数也是筛选表达式;
parent():返回原始包装集所有元素的唯一直接父元素的新包装集;如果指定了参数,那么该参数也是筛选表达式;
parents():返回原始包装集所有元素的祖先元素的新包装集;如果指定了参数,那么该参数也是筛选表达式;
prev():返回原始包装集元素的所有唯一的上一个兄弟元素组成的新包装集;如果指定了参数,那么该参数也是筛选表达式;
prevAll():返回包含原始包装集元素的所有前面兄弟元素的新包装集;如果指定了参数,那么该参数也是筛选表达式;
siblings():返回包含原始包装集元素中的所有唯一兄弟元素所组成的新包装集;如果指定了参数,那么该参数也是筛选表达式;
find(String):返回包含原始包装集里与传入的选择器表达式相匹配的所有元素的新包装集,并且原始包装集中的元素的后代也会被传入新的包装集;
contains(text):返回包含text参数所传入的文本字符串的元素所组成的新包装集;
is(String):如果包装集中含有String匹配的元素,那么返回true,否则返回false;
clone(copyHandle):如果传入的参数为true,那么会连带事件一起拷贝,否则不拷贝事件,形成一个新的包装集;
end():在jQuery命令链内调用,以便返回退到前一个包装集;
andSelf():合并命令链内最近产生的两个包装集;

     对于包装元素的操作就总结到这里,如果哪里不对的还请各位指出来方便大家参考学习。

posted @ 2009-04-22 10:50 你假笨 阅读(2387) | 评论 (0)编辑 收藏
        本文最初发表于本人个人博客http://www.lovestblog.cn/,欢迎大家光临 。(转载的请不要删除该行,谢谢合作)
        jQuery选择器其实是一个有些地方比较费解的,如果没有经过多次实验的话,很难得出它的每个操作符到底是干什么的,很容易出错,经过我的多次测试,终于对一些比较难理解或容易出错的选择操作进行总结,既方便自己将来查询又方便初学者学习。如果哪里有不对的还望大家帮我指出来,这里是一个相互学习的地方。 

     1. 先说说通过位置选择的几个操作: 
  • :first:默认情况下是相对整个页面来说的第一个,如:li:first表示整个页面的第一个li元素,而ul li:first表示整个页面的第一个li元素,并且是在ul下的子元素;
  • :last:同上了,只是是最后一个而已;
  • :first-child:为每个父元素匹配第一个子元素,如li:first-child返回每个ul的第一个li元素。可以这样理解,页面中的元素有相同的父元素的,并且里面又包含li元素的,那么就取第一个li元素,每个子类集合都要进行判断,直到找出所有符合要求的li元素;
  • :last-child:这个也与上面相对了,只是取的是最后一个;
  • :only-child:返回所有没有兄弟节点的元素,注意,文本元素不是,也就是说类似这样的<div>hello<a href="">jquery</a></div>,对于这段会选出<a>元素;对于$(”label:only-child“)会选出是label元素,同时它是它父类唯一的子元素的label元素;
  • :nth-child(n):返回第n个子节点,n从1开始,如果n取0,那么就会选择所有的元素。如:[*]li:nth-child(2)返回li元素,并且该元素是其父元素的第二个子元素;
  • :nth-child(even|odd):返回偶数或奇数的子节点;
  • :nth-child(An+B):返回满足表达式An+B的所有子节点,比如3n+1返回所处位置为父节点子元素的是3的倍数加1的那个子元素;
  • :even:页面范围内的处于偶数位置的元素,如:li:even返回全部偶数li元素;
  • :odd:页面范围内的处于奇数位置的元素;
  • :eq(n):第n个匹配的元素(n从0开始),如:li:eq(3)返回整个页面的第四个li元素,ul li:eq(1)返回页面中第一个ul元素下的第二个li元素,注意:只匹配一次就返回了;
  • :gt(n):第n个匹配元素(不包括)之后的元素(n从0开始),如:ul:gt(2)返回从第3个ul开始的所有ul元素(含第三个);
  • :lt(n):第n个匹配元素(不包括)之前的元素(n从0开始),如:ul:lt(2)返回从第0个和第1个ul元素;
    2. 利用css选择器进行选择: 
  • 元素标签名:比如说$(”a“)会选出所有链接元素;
  • #id:通过元素id进行选择,比如说$("#form1")会选择id为form1的元素;
  • .class:通过元素的CSS类来选择,比如说$(".boldstyle")会选择CSS为boldstyle类的元素;
  • 标签名#id.class:通过某类元素的id属性和class属性来选择,如:$(a#blog.boldStyle)会选择id为blog并且CSS类型为.boldStyle类型的链接元素(<a id='blog' class='.boldStyle'>);
  • 父标签名 子标签名.class:通过选择父标签下的某种CSS类型的子元素,如:$(p a.redStyle)会选择p段落元素中的链接子元素a,且其css类型为.redStyle;
     3. 通过子选择器,容器选择器和属性选择器进行选择: 
  • *:匹配所有的元素,比如说:$(*)会把页面中的所有元素都返回;
  • E:匹配标签名为E的所有元素,如$("a")返回所有链接元素;
  • E F:匹配父元素E下的标签名为F的所有子元素(F可以为E的子类的子类,甚至更远);
  • E>F:匹配父元素E下的所有标签名为F的直接子元素;
  • E+F:匹配所有标签名为F的元素,并且有E类型的兄弟节点在该F元素之前(E,F紧挨着);
  • E~F:匹配前面是任何兄弟节点E的所有元素F(E,F不必紧挨着);
  • E:has(F):匹配标签名为E,至少有一个标签名为F的后代节点的所有元素E;
  • E.C:匹配带有类名C的所有元素E。.C等效于*.C;
  • E#I:匹配id为I的所有元素E,#I等效于*#I;
  • E[A]:匹配带有属性A的所有元素E;
  • E[A=V]:匹配所有属性A的值为V的元素E;
  • E[A^=V]:匹配所有元素E,且A的属性值是V开头的;
  • E[A$=V]:匹配所有元素E,且A的属性值是V结尾的;
  • E[A*=V]:匹配所有元素E,且A的属性值中包含有V;
     4.利用jQuery自定义的选择器进行选择: 
  • :button:选择任何按钮类型的元素,包括input[type=submit]等等;
  • :checkbox:选择复选框元素;
  • :file:选择所有文件类型元素,即input[type=file];
  • :image:选择表单中的图像元素,即input[type=image],注意此处和前面根据标签名img选择图像有点不同哈;
  • :input:选择表单元素,如<input>,<select>,<textarea>,<button>等;
  • :radio:选择单选按钮元素;
  • :reset:选择复位按钮元素,如input[type=reset],button[type=reset];
  • :submit:选择提交按钮元素;
  • :text:选择文本字段元素,即input[type=text];
  • :animated:选择当前处于动态控制下的元素;
  • :contains(hello):选择包含文本hello的元素;
  • :header:选择标题元素,如<h1>;
  • :parent:选择拥有后代节点(包括文本)的元素,而排除空元素;
  • :selected:选择已选中的选项元素;
  • :visible:选择可见元素;
  • :enable:选择界面上已经可以使用的表单元素;
  • :disabled:选择界面上被禁用的表单元素;
  • :checked:选择已选中的复选框或单选按钮;
   主要还是要多练习,多写点例子熟悉下,东西其实也不是很多哈,希望能给大家带来帮助;
posted @ 2009-04-21 12:17 你假笨 阅读(5304) | 评论 (1)编辑 收藏
     摘要:          嘿,先向大家宣传下我站啊,http://www.lovestblog.cn/,这是我的个人博客,希望大家常来我博客坐坐呢,相信大家也会有所收益的,不过我也不会放弃javaeye的,我也会一直在这里写东西的。 (转载的请不要删除该段,谢谢合作)     &nbs...  阅读全文
posted @ 2009-04-11 17:52 你假笨 阅读(7770) | 评论 (14)编辑 收藏
仅列出标题
共2页: 上一页 1 2