jQuery中filter(),not(),split()的用法

filter(),not():

 
 程序代码
<script type="text/javascript">
$(document).ready(function() {
//输出   hello
alert($("p").filter(".selected").html());
//输出   How are you?
alert($("p").not(".selected").html());
});
</script>
 
</head>
<body>
 
<p class="selected">Hello</p><p>How are you?</p>
<!--
一个新的挑战是从一组类似或相同的元素中只选择某一个特定的元素。
jQuery提供了filter()和not()来做这个。
filter()能够将元素精简到只剩下满足过滤条件的那些,not()恰恰相反,他移除了所有满足条件的。-->
</body>
 
 
split():
 
 程序代码
<script type="text/javascript">
$(document).ready(function(){
$("input[@value=btn1]").click(function(){
//以¥分割
  alert($("span.sale").text().split("¥")[2]+"||"+$("span.sale").text().split("¥")[1]+"||"+$("span.sale").text().split("¥")[0]);
});
 
});
</script>
</head>
 
<body>
获取价格120:<input type="button" value="btn1" ><br>
 
<span class="sale">
Out Sale: ¥160<br />
Deal Price: ¥120</span>
 
 
<!--
应用split来解决这个问题。下面给出一个用split的实例:
msg ="2007/10/01";
     msg = msg.split("/");
     alert(msg[2]);
     他会把 msg 分成一个3块组成一个数组 ,然后就可以轻松获取了。
     -->
</body>
 
 
 
求助:filter在Firefox里出错,不知道是不是我写的不对?
 
var stext = $(data).filter('#content').html();
 
data是通过ajax取回的内容,我想进行筛选,只要取回内容里的ID为content的部分。
这样的写法在IE里一切正常,不知道为什么在Firefox里就不行,用Firebug来进行查找错误,提示是jquery-1.2.1.js里第1521 行的“f = ('false||function(a,i){return ' + f + '}');”这段有问题,不知道是不是BUG,也不知道该如何处理。折腾N久,近乎崩溃了!没办法,本人刚接触jQuery,还是个小菜鸟。
 
 
这个问题已经自己解决!
不知道有没有人遇到同样的问题,但我想还是分享一下自己的经验!
用 filter进行筛选的时候,固定的数据如 march.hu 所说的那个(var data = "<p>第一段</p><p id='second'>第二段</p>";),这种没有关系,但用AJAX取回动态数据进行筛选的时候,必须同时指定标签类型和 ID,才能正常进行筛选,要不然在Firefox下会出错。
错误的:var stext = $(data).filter('#content').html();
正确的:var stext = $(data).filter('div#content').html(); 
 

posted on 2010-10-14 23:38  linzheng  阅读(52875)  评论(0编辑  收藏  举报

导航