如何使用jQuery将所有required="required"属性完整替换为data-test="done"
实现方法
有两种常用的实现方案,可根据你的使用场景选择:
方案一:直接操作DOM属性(推荐)
直接通过jQuery的属性API批量处理元素,不会破坏元素上已绑定的事件,稳定性更高:
// 选中所有带有required="required"属性的元素 $('[required="required"]') // 移除原有required属性 .removeAttr('required') // 添加目标data-test属性 .attr('data-test', 'done')
方案二:HTML字符串替换
如果你的场景是需要拿到替换后的完整HTML源码,可以使用字符串全局替换的方式:
// 获取表单容器的完整HTML const formHtml = $('#commentform').prop('outerHTML') // 全局匹配替换目标属性 const replacedHtml = formHtml.replace(/required="required"/g, 'data-test="done"') // 若需要把替换后的内容重新渲染到页面,可执行下面的代码 // 注意:该操作会销毁原有DOM上绑定的所有事件 // $('#commentform').replaceWith(replacedHtml)
注意:字符串替换存在误匹配风险,若页面中存在和required="required"完全一致的文本内容也会被替换,非必要场景优先选择方案一。
内容的提问来源于stack exchange,提问作者مهدی نبوی
相关产品推荐
相关产品推荐

