导航:首页 > 净水问答 > jquery自定义过滤器

jquery自定义过滤器

发布时间:2022-05-19 21:51:13

⑴ JavaWeb:后台判断是手机登陆还是Pc登陆

两种方式:第一种用在页面,第二种用java过滤
页面用jq判断,单独建立一个js文件,哪个页面使用,就引入哪个页面,一般为首页。引用时,记得先引用jquery
$(function() {
var tag = isMobile(); // true为PC端,false为手机端
if (tag) {
alert("手机");
console.info("手机")
}
});
function isMobile() {
var userAgentInfo = navigator.userAgent;
var mobileAgents = [ "Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod" ];
var mobile_flag = false;
// 根据userAgent判断是否是手机
for (var v = 0; v < mobileAgents.length; v++) {
if (userAgentInfo.indexOf(mobileAgents[v]) > 0) {
console.info("chenk userAgent")
mobile_flag = true;
break;
}
}
var screen_width = window.screen.width;
var screen_height = window.screen.height;
// 根据屏幕分辨率判断是否是手机
if (screen_width < 500 && screen_height < 800) {
console.info("check screen")
mobile_flag = true;
}
return mobile_flag;
}

过滤器方式:filter
public class IsMobile implements Filter {

/**
* Default constructor.
*/
public boolean IsMobileCheck(ServletRequest sRequest) {
HttpServletRequest request = (HttpServletRequest)sRequest;
boolean isMoblie = false;
String[] mobileAgents = { "iphone", "android", "phone", "mobile",
"wap", "netfront", "java", "opera mobi", "opera mini", "ucweb",
"windows ce", "symbian", "series", "webos", "sony",
"blackberry", "dopod", "nokia", "samsung", "palmsource", "xda",
"pieplus", "meizu", "midp", "cldc", "motorola", "foma",
"docomo", "up.browser", "up.link", "blazer", "helio", "hosin",
"huawei", "novarra", "coolpad", "webos", "techfaith",
"palmsource", "alcatel", "amoi", "ktouch", "nexian",
"ericsson", "philips", "sagem", "wellcom", "bunjalloo", "maui",
"smartphone", "iemobile", "spice", "bird", "zte-", "longcos",
"pantech", "gionee", "portalmmm", "jig browser", "hiptop",
"benq", "haier", "^lct", "320x320", "240x320", "176x220",
"w3c ", "acs-", "alav", "alca", "amoi", "audi", "avan", "benq",
"bird", "blac", "blaz", "brew", "cell", "cldc", "cmd-", "dang",
"doco", "eric", "hipt", "inno", "ipaq", "java", "jigs", "kddi",
"keji", "leno", "lg-c", "lg-d", "lg-g", "lge-", "maui", "maxo",
"midp", "mits", "mmef", "mobi", "mot-", "moto", "mwbp", "nec-",
"newt", "noki", "oper", "palm", "pana", "pant", "phil", "play",
"port", "prox", "qwap", "sage", "sams", "sany", "sch-", "sec-",
"send", "seri", "sgh-", "shar", "sie-", "siem", "smal", "smar",
"sony", "sph-", "symb", "t-mo", "teli", "tim-", "tosh", "tsm-",
"upg1", "upsi", "vk-v", "voda", "wap-", "wapa", "wapi", "wapp",
"wapr", "webc", "winw", "winw", "xda", "xda-",
"Googlebot-Mobile" };
if (request.getHeader("User-Agent") != null) {
for (String mobileAgent : mobileAgents) {
if (request.getHeader("User-Agent").toLowerCase()
.indexOf(mobileAgent) >= 0) {
isMoblie = true;
break;
}
}
}
return isMoblie;
}

/**
* @see Filter#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
}

/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(ServletRequest sRequest, ServletResponse response, FilterChain chain) throws IOException, ServletException {
System.out.println("手机检查");
HttpServletRequest request = (HttpServletRequest)sRequest;
if (IsMobileCheck(request)) {
((HttpServletResponse)response).sendRedirect(request.getContextPath() + "/wap/index.jsp");
return;
} else {

}
chain.doFilter(request, response);
}

/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
// TODO Auto-generated method stub
}
}

⑵ jquery如何获取div中li元素

1、通过过滤器获取li数组

varlis=$('divli');//表示获取div下所有的直接或者非直接li节点。

2、循环lis方式获取每个li元素

for(vari=0;i<lis.length;i++){
varli=lis[i];//获取每个li元素
}

⑶ scandir第三个参数filter是过滤用的吗

最近发现了jquery的.filter()方法,这真是一个很强大的方法,最强大之处在于,他可以接受一个函数作为参数,然后根据函数的返回值判断,如果返回值是true,这个元素将被保留,如果返回值是false,这个元素将被剔除。这就是jquery选择器的过滤器。

空说无用,我们展示一下

复制代码代码如下:

<body>
<p>你好啊,今天及多大了啊</p>
<p><span>为什么要告诉你</span></p>
</body>

如果我们要选择有一个<span>子元素的<p>元素,平常我都是这么写的

复制代码代码如下:

$("p>span").parent();

现在借助于.filter()我们可以写成这个样子:

复制代码代码如下:

$("p").filter(function(index){
return $(this).find("span").size();
});

虽然看起来有些麻烦,但是他提供了我们一种极其强大的自定义查找元素的功能,我们可以传递一个函数,然后借助jquery的隐式迭代,来实现查找。

⑷ jquery自定义过滤器的正则表达式怎么使用

匹配p标签中的文本满足
apple、orange、lemon三组单词任意一组全部相等返回返回ture。
比如
<p>apple</p>
结果返回ture,
<p>apple1</p>返回false

⑸ 怎么自定义shiro中的过滤器来允许ajax请求后台数据

自定义过滤器:

public class extends FormAuthenticationFilter {

@Override
protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception {
if (isLoginRequest(request, response)) {
if (isLoginSubmission(request, response)) {
return executeLogin(request, response);
} else {
// 放行 allow them to see the login page ;)
return true;
}
} else {
HttpServletRequest httpRequest = WebUtils.toHttp(request);

if (ShiroFilterUtils.isAjax(httpRequest)) {

HttpServletResponse httpServletResponse = WebUtils.toHttp(response);
httpServletResponse.sendError(ShiroFilterUtils.HTTP_STATUS_SESSION_EXPIRE);

return false;

} else {
saveRequestAndRedirectToLogin(request, response);
}

return false;
}
}

/**
* 判断ajax请求
* @param request
* @return
*/
boolean isAjax(HttpServletRequest request){
return (request.getHeader("X-Requested-With") != null && "XMLHttpRequest".equals( request.getHeader("X-Requested-With").toString()) ) ;
}

}

封装ajax

var Error = function () {

return {
// 初始化各个函数及对象
init: function () {

},

// 显示或者记录错误
displayError: function(response, ajaxOptions, thrownError) {
if (response.status == 404) {// 页面没有找到
pageContent.load($("#hdnContextPath").val() + "/page/404.action");
} else if (response.status == 401) {// session过期
SweetAlert.errorSessionExpire();
} else if (response.status == 507) {// 用户访问次数太频繁
SweetAlert.error("您的访问次数太频繁, 请过一会再试...");
} else {//其他错误
window.location = $("#hdnContextPath").val() + "/page/500.action";
}
console.log(thrownError);
}

};

}();

jQuery(document).ready(function() {
Error.init();
});

JS的引用处如下:

App.blockUI();

$.ajax({
url: $("#hdnContextPath").val() + "/feedback/queryFeedBackDetail.action",
type: "POST",
async: false,
data: {"feedbackId": feedbackId, "userId": userId, "status": status},
success: function(data) {
// 忽略

⑹ jquery unbind 和off的区别

1:unbind():为每个匹配元素的特定事件绑定事件处理函数。
unbind(type,[data],fn)
type: 含有一个或多个事件类型的字符串,由空格分隔多个事件。
比如"click"或"submit",还可以是自定义事件名。
data:作为event.data属性值传递给事件对象的额外数据对象
fn:绑定到每个匹配元素的事件上面的处理函数

2:off()在选择元素上绑定一个或多个事件的事件处理函数。
off(events,[selector],[data],fn)
events:一个或多个用空格分隔的事件类型和可选的命名空间,如"click"或"keydown.myPlugin" 。
selector:一个选择器字符串用于过滤器的触发事件的选择器元素的后代。如果选择的< null或省略,当它到达选定的元素,事件总是触发。
data:当一个事件被触发时要传递event.data给事件处理函数。
fn:该事件被触发时执行的函数。 false 值也可以做一个函数的简写,返回false。

对比发现off 和unbind的 差别不大, 但是off多一个[selector] 可以过滤指定元素。
另外,查看jQuery源码可知,.unbind()是通过.off()来实现的

⑺ jquery 的过滤器函数怎么写

JS代码

1.DOM对象与JQuery包装集

1.通过document.getElementById(),document.getElementsByName()等取的就是DOM对象或DOM对象集,前者取的是对象,后者取得DOM对象集

vartext11_dom=document.getElementById("text11");
vartext11_dom=document.getElementsByName("text11")[0];
vartext11_dom=document.all.text11;//此处text11即可以是name值也可以是id值
vartext11_dom=document.all[10];

2.如果要使用JQuery提供的函数首先要构造JQuery包装集,通过$()返回的即是JQuery包装集。

vartext11_jquery=$("#text11");

2.JQuery包装集与DOM对象互相转换
1.DOM对象不能使用JQuery属性方法,但DOM对象可以通过$()转换成JQuery包装集

vartext11_dom=document.getElementById("text11");
vartext11_jquery=$(text11_dom);

2.JQuery包装集可以使用部分DOM对象的属性方法如.length,但也有个别属性方法不能使用如.value,可以通过在JQuery包装集后面加中括号及索引值获取对应DOM对象

vartext11_dom=$("#text11")[0];

3.在each循环时或触发事件时的this也是DOM对象

$("#text11").click(function(){
vartext11_dom_value=this.value;
alert(text11_dom_value);
});

3.$符号在JQuery中代表对JQuery对象的引用,JQuery的核心方法有四个
1.jQuery(html[,ownerDocument]):根据HTML原始字符串动态创建Dom元素

$("<div><p>Hello!</p></div>").appendTo("body");

2.jQuery( elements ):将一个或多个Dom对象封装为jQuery包装集,就是上面的DOM对象与JQuery包装集转换
3.jQuery( callback ):$(document).ready()的简写方式

$(function(){
alert("Hello!");
});

4.JQuery(selector[,context]):在指定范围内查找符合条件的JQuery包装集,context为查找范围,context可以是DOM对象集也可以是JQuery包装集
在所有tr标签中查找id为text11元素的JQuery包装集

vartext11_query=$("#text11","tr");

===================jQuery选择器===================

1. 基础选择器 Basics
1.根据标签名进行选择

varinput_query=$("input");

2.根据id值选取

vartext11_query=$("#text11");

3.根据class值进行选取

vartext11_query=$(".text11");

4.同时选择多个符合条件的JQuery包装集用,号分隔条件

vartext_query=$("#text11,.text12");

5.选择所有DOM元素

varall_query=$("*");

2.层次选择器 Hierarchy
1.从所有tr标签中获取其下面的所有id值为text11的元素

vartext11_query=$("tr #text11");

2.获取所有td标签下的所有直接input子元素

varinput_query=$("td>input");

3.获取id为text11元素后面的class为button11元素,只获取一个符合条件的元素。text11与button11在地位上属于同级关系

varbutton11_query=$("#text11+.button11");

4.获取id为text11元素后面的所有class为button11的元素

varbutton11_query=$("#text11~.button11");

3.基本过滤器 Basic Filters
1.获取第一个input元素

varinput_query=$("input:first");

2.获取最后一个input元素

varinput_query=$("input:last");

3.获取所有未被选中的input元素

varinput_query=$("input:not(:checked)");

4.第一个input元素算一,查找所有第奇数个的input元素

varinput_query=$("input:even");

5.从第二个input算起,查找所有第偶数个的input元素

varinput_query=$("input:odd");

6.查找索引为1的input元素,索引值从0算起

varinput_query=$("input:eq(1)");

7.查找索引大于0的所有input元素

varinput_query=$("input:gt(0)");

8.查找索引小于2的所有input元素

varinput_query=$("input:lt(2)");

9.获取页面所有<h>标题元素

varh_query=$(":header");

10.获取所有正在执行动画效果的元素

varanimated_query=$(":animated");

4. 内容过滤器 Content Filters
1.查找所有html内容含有"你好世界!"的h1元素

varh1_query=$("h1:contains('你好世界!')");

2.获取所有不含子标签或html内容为空的td元素

vartd_query=$("td:empty");

3.查找所有含有input子元素的td元素

vartd_query=$("td:has(input)");

4.查找所有含有子标签或有html内容的td元素

vartd_query=$("td:parent");

5.可见性过滤器 Visibility Filters
1.查找所有隐藏的input元素

varinput_query=$("input:hidden");

2.查找所有可见的input元素

varinput_query=$("input:visible");

6.属性过滤器 Attribute Filters
以下id,name等属性名,也可换成其他属性名,或自定义的属性名
1.查找所有含有id属性的input元素

varinput_query=$("input[id]");

2.查找name值为text11的input元素

varinput_query=$("input[name='text11']");

3.查找name值不等于text11的所有input元素

varinput_query=$("input[name!='text11']");

4.查找name值以text开头的input元素

varinput_query=$("input[name^='text']");

5.查找name值以11结尾的所有input元素

varinput_query=$("input[name$='11']");

6.查找name值中含有ext的所有input元素

varinput_query=$("input[name*='ext']");

7.查找所有含有id属性并且name值中含有ext的input元素

varinput_query=$("input[id][name*='ext']");

7.子元素过滤器 Child Filters
1.查找所有在父元素中的所有子元素中排第2的input元素
nth-child()里参数可选even在这里算偶数,odd在这里算奇数,n任意数即选取所有有父元素的input元素,数字是直接选排在第几个的input元素,第一个input元素算一

varinput_query=$("input:nth-child(2)");

2.查找所有在父元素中的所有子元素中排第一的input元素

varinput_query=$("input:first-child");

3.查找所有在父元素中所有子元素中排最后一个的input元素

varinput_query=$("input:last-child");

4.查找所有在父元素中是唯一子元素的input元素

varinput_query=$("input:only-child");

8.表单选择器 Forms
1.查找所有input元素

varinput_query=$(":input");

2.查找所有文本框元素

vartext_query=$(":text");

3.查找所有密码框元素

varpassword_query=$(":password");

4.查找所有复选框

varcheckbox_query=$(":checkbox");

5.查找所有提交按钮元素

varsubmit_query=$(":submit");

6.查找所有图像域元素

varimage_query=$(":image");

7.查找所有重置按钮元素

varreset_query=$(":reset");

8.查找所有按钮元素

varbutton_query=$(":button");

9.查找所有文件域元素

varfile_query=$(":file");

9.表单过滤器 Form Filters
1.查找所有可用的input元素

varinput_query=$("input:enabled");

2.查找所有不可用的input元素

varinput_query=$("input:disabled");

3.查找所有选中的单选复选框

varinput_query=$("input:checked");

4.查找所有选中的下拉框

varoption_query=$("option:selected");

⑻ jquery自定义过滤器的正则表达式怎么使用

匹配p标签中的文本满足 apple、orange、lemon三组单词任意一组全部相等返回返回ture。
比如 <p>apple</p> 结果返回ture, <p>apple1</p>返回false

⑼ 如何通过jquery获取选中按钮的radio的value值

1、定义一个radio节点

<inputtype='radio'/>

2、通过过滤器获取选中的radio

varselectR=$('input:radio:checked');//input表示标签是input,:radio表示type是radio,:checked表示是选中

3、通过val获取选中的值

varv=selectR.val();//获取选中的值
阅读全文

与jquery自定义过滤器相关的资料

热点内容
液相用溶剂过滤器 浏览:674
纳滤水导电率 浏览:128
反渗透每小时2吨 浏览:162
做一个纯净水工厂需要多少钱 浏览:381
最终幻想4回忆技能有什么用 浏览:487
污水提升器采通 浏览:397
反渗透和不发渗透净水器有什么区别 浏览:757
提升泵的扬程 浏览:294
泽德提升泵合肥经销商 浏览:929
饮水机后盖漏水了怎么办 浏览:953
小型电动提升器 浏览:246
半透膜和细胞膜区别 浏览:187
废水拖把池 浏览:859
十四五期间城镇污水处理如何提质增效 浏览:915
怎么测试空气净化器的好坏 浏览:519
提升泵是干嘛的 浏览:744
布油做蒸馏起沫咋办 浏览:252
广州工业油烟净化器一般多少钱 浏览:204
喜哆哆空气净化器效果怎么样 浏览:424
油烟净化器油盒在什么位置 浏览:582