html5查询通配符,在HTML5数据属性通配符(Wildcards in HTML5 data attributes)

是否有可能找到所有的DOM元素使用jQuery在属性名通配符?

考虑下面的HTML:

id="val1"

type="text"

data-validate-required

data-validate-minlength="3"

data-validate-email />

我试图实现是要找到所有的DOM节点与属性名称以data-validate-

据我了解所描述的通配符这里所关注的属性的“值”。

这样做的原因是 - 我想找出哪些元素应该不惜一切被验证 - 事后找出验证参数(如-email)进来玩。

谢谢

Answer 1:

您可以创建一个自定义的伪类到如匹配的属性名称对一个正则表达式: http://jsfiddle.net/hN6vx/ 。

jQuery.expr.pseudos.attr = $.expr.createPseudo(function(arg) {

var regexp = new RegExp(arg);

return function(elem) {

for(var i = 0; i < elem.attributes.length; i++) {

var attr = elem.attributes[i];

if(regexp.test(attr.name)) {

return true;

}

}

return false;

};

});

用法:

$(":attr('^data-')")

Answer 2:

因为jQuery严重依赖的XPath和XPath不支持通配符属性选择-这是不可能的,没有你正在寻找避免的开销。

总有创建自己的选择,只是为了保持清洁的可能性:

//adds the :dataValidate selector

$.extend($.expr[':'],{

dataValidate: function(obj){

var i,dataAttrs=$(obj).data()

for (i in dataAttrs) {

if (i.substr(0,8)=='validate') return true;

}

return false;

}

})

这将允许您使用:dataValidate在你的正常jQuery选择:

$(".element:dataValidate .etc")

工作的jsfiddle: http://jsfiddle.net/rZXZ3/

Answer 3:

你可以在atributes循环:

$('.element').each(function() {

$.each(this.attributes, function(i, att){

if(att.name.indexOf('data-validate')==0){

console.log(att.name);

}

});

});

Answer 4:

您可以使用filter的方法和dataset对象:

允许访问,无论是在阅读和写作模式,所有的自定义数据属性(数据并行*)在元素上设置。 这是地图为DOMString一个,每个自定义数据属性的一个条目。

$("input").filter(function(){

var state = false;

for (i in this.dataset)

if (i.indexOf('validate') > -1) state = true;

return state

})​

http://jsfiddle.net/Pxpfa/

文章来源: Wildcards in HTML5 data attributes

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 在HTML5中,可以使用base64编码来将图片转换为字符串形式,以便在网页中显示。通过将图片转换为base64编码的字符串,可以直接将其嵌入到HTML代码中,而不需要额外的图片文件。这样可以减少网页的加载时间和请求次数。同时,也可以使用base64编码的字符串作为数据传输的方式,例如通过Ajax请求将图片数据传输到服务器。\[1\]在PHP中,可以使用base64_encode()函数将图片文件编码为base64字符串。例如,可以使用以下代码将名为"wg.png"的图片文件编码为base64字符串并输出到浏览器上: echo base64_encode(file_get_contents('wg.png'));\[1\]在C#中,可以使用Base64ToImage()函数将base64字符串转换为图片对象,或使用ImageToBase64()函数将图片对象转换为base64字符串。这些函数可以用于将base64编码的图片数据转换为可用于显示或存储的图片对象,或将图片对象转换为base64编码的字符串。\[2\]需要注意的是,标准的Base64编码并不适合直接放在URL中传输,因为URL编码器会将Base64中的"/"和"+"字符转换为形如"%XX"的形式。在存入数据库时,还需要进行进一步的转换,因为ANSI SQL中已将"%"号用作通配符。\[3\] #### 引用[.reference_title] - *1* *3* [html image -- data:image/png;base64](https://blog.csdn.net/weixin_36122809/article/details/118168033)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [C# Image转化成base64](https://blog.csdn.net/qq_37944029/article/details/108102300)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值