1. 程式人生 > >動態-JS實現給物件動態新增屬性並賦值 及 實現AJAX data傳遞動態key鍵名

動態-JS實現給物件動態新增屬性並賦值 及 實現AJAX data傳遞動態key鍵名

對前段工作時間中遇到的兩種自認為比較有意義的JS動態操作資料的情況進行總結:

1.JS實現物件的動態新增屬性並賦值

例:點選觸發  通過類選擇器遍歷所有的input 並將其對應實體類的屬性及屬性值動態新增到info物件中,請求到後臺.

var info = {};
$("#ss").click(function() {
     $(".cc input").each(function() {
	  var idValue = $(this).attr("id"); //獲取屬性id對應的屬性值
          var name=this.name;  //獲取該name的屬性名稱 
          eval("info."+name+"=" + idValue));
     });				
});
注意:  this,表示當前的上下文物件是一個html物件,可以呼叫html物件所擁有的屬性和方法。
           $(this),代表的上下文物件是一個jquery的上下文物件,可以呼叫jquery的方法和屬性及其值。

2. 在某種情況下,  AJAX data可能根據不同的key鍵名稱傳遞不同的value值,這時需要傳遞動態key鍵名,下面來解決ajax中data傳參鍵名是變數不能識別的問題:

問題: 如key='name',value='shilei',傳遞過去的資料是{key:shilei}, 而不是{name:shilei}.

原因: json解析時key都按字串解析,不識別變數.

解決方案: 使用物件型別來進行傳遞.

var obj = {};
key = 'name';
value = 'shilei';
obj[key] = value; //相當於obj['name'] = 'shilei';
//此時ajax的data資料項應改為
data:obj,

相關推薦

動態-JS實現物件動態新增屬性 實現AJAX data傳遞動態key

對前段工作時間中遇到的兩種自認為比較有意義的JS動態操作資料的情況進行總結: 1.JS實現物件的動態新增屬性並賦值 例:點選觸發  通過類選擇器遍歷所有的input 並將其對應實體類的屬性及屬性值動態新增到info物件中,請求到後臺. var info = {}; $("#

vue物件新增屬性,一定要使用Vue.set( target, key, value )這個API來新增

this.tagList = [{ id:1, tagName:'90後' }, { id:2, tagName:'土豪' }, { id:3, tagName

Java 物件之間相同屬性

參考文章 1.BeanUtils.copyProperties import org.springframework.beans.BeanUtils; User src = new User(); User dest = new User(); Bean

利用java反射實現兩個具有相同屬性bean

import java.lang.reflect.Field; import java.lang.reflect.Method; public class ClassReflection { /** * @param class1 用於賦值的實體類

添加json屬性或修改json屬性(ztree樹形結構)

items length [] box poi 修改 item sub amp var data=[ {accounts :[], attrs : {maxmailboxsize: "-1", maxusers: "-1"}, fullpa

js 物件陣列新增屬性、修改屬性

var kvArray = [{key: 1, value: 10}, {key: 2, value: 20}, {key: 3, value: 30}]; var reformattedArray = kvAr

python 動態獲取例項物件屬性方法,

#coding:utf-8 import sys def foo():pass class Cat(object): def __init__(self, name='Kitty'): self.name = name def sayHi

js實現dom重複新增事件,不覆蓋事件

var addLicenseFnNotOverride = function(dom,event,fn){ //字串處理,去掉'on' var evString = event.substr(0,2); if(evString == 'on'){

js物件標籤新增事件&方法的封裝

<pre name="code" class="html"><span style="font-family:Microsoft YaHei;font-size:14px;"><body> <div id="box"> &

Android中apk動態載入技術研究(2)android插件化實現

name creat package path iss fontsize 調用 dex con 了解了android中類載入的前期知識點後,來看看android中DexClassLoader詳細的實現 詳細載入流程例如以下: 宿主程序會到文件系統比

yii---往物件裡面新增屬性

我們在用YII的時候,查詢到一條資料,但是很多時候會往這條查詢的資料裡,新增某個欄位,但是直接新增會報錯:  $thread = $this->getThreadService()->getThread($threadId); $thread->is_praise = fa

動態連結庫和靜態連結庫的相互包含問題實現

動態連結庫和靜態連結庫的基本概念請參考 1.《深入理解計算機系統》第七章連結 2.《程式設計師的自我修養》第4章 靜態連結和第7章 動態連結 3. http://blog.jobbole.com/86852/ 目的 為了封裝程式碼,簡化介面,我們要把已有應用程式碼封裝為

Java中對List中的物件根據某個屬性排序(Lamda表示式實現

public class Person { private String id; private String name; private int age; public Person(String id, String name, int age) { this.i

利用python pil 實現圖片上新增文字

最近的一個工程專案是講文字新增到影象上。 使用了opencv,結果發現利用opencv給影象新增文字有侷限。 (1)可利用的字型型別比較少,需要安裝Freetype擴充套件,比較複雜。 (2)不能用putText函式輸出中文,否則就會出現亂碼的情況 只好選擇使用pytho

Python中物件可以新增屬性

當我在看cifar10_input.py檔案中read_cifar10方法時,出現了result物件,進行屬性賦值result.height = size,但是result是一個object物件,沒有height屬性,看到上面那個帖子才明白原因。 de

IOS執行時傳遞物件或者新增屬性

之前做一個專案時,碰到一個問題,為一個UITableViewCell中的不同按鈕繫結不同的物件,點選按鈕後獲取繫結的相應的物件。目前我所知道的有兩種方式可以實現該需求。1.使用IOS提供的執行時  2.之定義UIButton,為其設定屬性。下面介紹第一種方式: 一、使用執行

HTML:js中Window物件的常用屬性:screen物件

Window物件的常用屬性:      screen:有關客戶端的螢幕和顯示效能的資訊      history:有關客戶訪問過的URL的資訊      location:有關當前URL的資訊      closed:當視窗關閉是為真      document:視窗中當前

js獲取session物件中的屬性

<label for="name">性別</label> <select class="form-control" name="" id="gender" value="${Users.user_gender }">     <opt

微信小程式實現迴圈列表新增點選樣式例項

微信小程式有個屬性hover-class='active',是指當點選列表元素時當按下滑鼠左鍵會顯示active樣式,但是滑鼠離開樣式就會復原.可以參考以下解決方案,直接上程式碼: wxml:<view class="taga"> <view class=

用反射實現物件屬性使用泛型建立例項

using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Reflec