jQuery批量修改Name值,批量增加name後綴,非each(不需要循環)
背景
表單字段,配置where屬性自動刷新到可查詢區域,查詢字段需增加_where後綴,響應後臺規則
問題
批量設置的查詢字段,必須批量增加_where後綴方可正常查詢。each循環有點麻煩,有沒有更方便的批量修改方法。
調查
方向就是jquery批量修改name,整個互聯網充斥的都是.attr("name","new_value")。只有單值修改,最終,發現這篇系統性文章
Jquery attr()方法 屬性賦值和屬性獲取
jquery中用attr()方法來獲取和設置元素屬性,attr是attribute(屬性)的縮寫,在jQuery DOM操作中會經常用到attr(),attr()有4個表達式。
1. attr(
屬性名) //獲取屬性的值(取得第一個匹配元素的屬性值。通過這個方法可以方便地從第一個匹配元素中獲取一個屬性的值。如果元素沒有相應屬性,則返回 undefined )
2. attr(屬性名, 屬性值) //設置屬性的值 (為所有匹配的元素設置一個屬性值。)
3. attr(屬性名,函數值) //設置屬性的函數值 (為所有匹配的元素設置一個計算的屬性值。不提供值,而是提供一個函數,由這個函數計算的值作為屬性值。)
4.attr(properties) //給指定元素設置多個屬性值,即:{屬性名一: “屬性值一” , 屬性名二: “屬性值二” , … … }。(這是一種在所有匹配元素中批量設置很多屬性的最佳方式。 註意,如果你要設置對象的class屬性,你必須使用‘className‘ 作為屬性名。或者你可以直接使用‘class‘或者‘id‘。)
引用
方案
使用的就是3號方案,源碼如下
// 註意3號方案的函數形式,即each循環的代碼 $("input[where]").attr("name",function(){return this.name+"_where"});
總結
完美解決,省掉each循環代碼塊,看著高大上
2017-09-18 15:25
沫沫金
於 西安 匯鑫IBC
本文出自 “沫沫金的IT心得與技巧” 博客,請務必保留此出處http://zl0828.blog.51cto.com/2242565/1966363
jQuery批量修改Name值,批量增加name後綴,非each(不需要循環)