1. 程式人生 > >jQuery批量修改Name值,批量增加name後綴,非each(不需要循環)

jQuery批量修改Name值,批量增加name後綴,非each(不需要循環)

jquery 批量修改name

背景

表單字段,配置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(不需要循環)