1. 程式人生 > >js函式之函式傳參

js函式之函式傳參

       js拼接字串時,字串的事件引數需要傳物件或物件陣列的處理方法
有時候在js拼接字串時,需要傳遞物件或物件陣列,這時候直接將事件拼接在html達不到想要的效果,如

$(document).ready(function(){     
   var dd=[];
        for(var i=0;i<3;i++){
           var obj ={};
           obj.a='i'+i;
           obj.b='j'+i;
           dd.push(obj);
        }
        var html="<a href='javascript:void(0);' onclick=\"fn_test("+dd+");\">aaaaa</a>";
         
         $("#test").append(html);

});

function fn_test(b){
      for(var i=0;i<b.length;i++){
        alert(b[i].a);
      }
    }

       dd引數為物件陣列,直接這樣做會物件引數會成為一個字串傳遞過去,而達不到預料的效果,我們可以換種思路:先把生成的html字串apend到頁面上,然後再給節點繫結事件.

解決辦法:


        $(document).ready(function(){
        var dd=[];
        for(var i=0;i<3;i++){
           var obj ={};
           obj.a='i'+i;
           obj.b='j'+i;
           dd.push(obj);
        }
         
          
          
          var html=$("<a href='javascript:void(0);'>aaaaa</a>");

      $("#test").append(html);
          html.click(function(){
             fn_test(dd);
          });
        });
    function fn_test(b){
      for(var i=0;i<b.length;i++){
        alert(b[i].a);
      }
    }

或者


        $(document).ready(function(){
        var dd=[];
        for(var i=0;i<3;i++){
           var obj ={};
           obj.a='i'+i;
           obj.b='j'+i;
           dd.push(obj);
        }
         
          
          
          var html="<a id="testNode" href='javascript:void(0);'>aaaaa</a>";

      $("#test").append(html);
          $("testNode").bind("click",function(){
             fn_test(dd);
          });
        });
    function fn_test(b){
      for(var i=0;i<b.length;i++){
        alert(b[i].a);
      }
    }



這樣即達到想要的效果


相關推薦

js函式函式

js拼接字串時,字串的事件引數需要傳物件或物件陣列的處理方法 有時候在js拼接字串時,需要傳遞物件或物件陣列,這時候直接將事件拼接在html達不到想要的效果,如 $(document).ready(function(){ var dd=[]; for(var i

【python學習筆記】python函式定義和方法說明

一、函式定義方式 函式定義用關鍵字def,其引數傳遞不用設定型別,也不用定義返回,然後在函式名稱後加上:號,這點和java很不一樣,相對來說更加簡單了;另外包含關係上用四個空格來標識,而非java的;號; 如下為一個範例,定義了一個函式用來生成任意上界的菲波那契數列: # -*- c

JS 語法--函式,異常

1、函式    2、函式表示式   使用表示式定義函式,表示式中的函式名可以省略,如果這個函式名不省略,也只能用在此函式內部。   測試:匿名函式 +   函式表示式 1 // 匿名函式 2 const add = function (x, y) { 3 re

(十)函式的動態,作用域

⼀. 函式引數--動態傳參   如果我們需要給⼀個函式傳參, ⽽引數⼜是不確定的. 或者我給⼀個函式傳很多引數, 我的形參就要寫很多, 很⿇煩, 怎麼辦呢. 我們可以考慮使⽤動態引數.      形參的第三種: 動態引數。 動態引數分成兩種: 動態接收位置

C++(筆記)容器(vector)作為函式引數如何

一、大致以下型別 void 函式名( vector< int> obj ); void 函式名( vector< int>* pobj ); void

swap函式函式值問題

在前面的部落格中,我有一篇“藉助字元大小轉換balabala”的博文。那篇文章我寫得很認真。但是後來,我和一個學長交流問題的時候,我發現自己的子函式寫的不符合規則。 所以,我又閉門造車了。。 時隔兩天,我來糾正自己的錯誤啦。 首先,函式呼叫時,涉及到值傳遞。實參經過子函式,計算出結果,並返回

python定義函式時的引數&呼叫函式時的

一、定義函式:   1、位置引數:直接定義引數   2、預設引數(或者關鍵字引數):引數名 = "預設值"   3、位置引數必須在預設引數之前   二、呼叫函式:   1、按位置傳,直接寫引數的值   2、按關鍵字傳,關鍵字 = "值"   3、位置引數必須在關鍵字引數之前   4

Python函式定義及方式

一、函式初識   1、定義:       將一組語句的集合通過一個名字(函式名)封裝起來,要想執行這個函式,只需呼叫其函式名即可。    2、好處:       程式碼重用;保持一致性;可擴充套件性。   3、示例如下:     # -*-coding:utf-8-*-

關於遞迴函式非遞迴函式中引用的問題

首先 我們來看這個函式 typedef int Ele; typedef struct list{ Ele data; list *next; }List,*LNode; void dele2(LNode &l,Ele e){ if(l==NULL)ret

問題記錄 lua賦值函式型別後執行沒效果

今天遇到一個問題 在寫一個公共ui時我想暴露一個介面用來做自己想要的操作 像這樣: function UI:setExecute(callBack) self.execute = callBack end 但使用的時候要有引數的函式時沒有效果

JavaScript中如何使addEventListener繫結的函式既能還能解綁?

var btn = document.getElementsByClassName('btn')[0], remove = document.getElementsByClassName('remove')[0]; var some = function (msg) {

JS學習函式表示式(一)宣告及遞迴

一.函式宣告 函式表示式是JavaScript中的一個既強大有容易令人困惑的特性。定義函式的方式有兩種:一是函式宣告,二是函式表示式 函式宣告如下,這種定義方法會有函式宣告提升,也就是函式的呼叫可以在函式宣告前

Jquery的each函式拼接字串問題

問題,在使用$.each函式時,有一個操作需要拼接HTML語句,然後在拼接後的點選事件函式中出傳入當前el物件,一直報錯,不曉得什麼原因。(data是ajax返回的json物件) 解決辦法: 將el轉

初學servlet@WebServlet

html tps ont rate ans https version ets serial package app01a;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.

js addEventListener調用函數

fun es5 我們 call his event som use 不同 先看這段代碼 1 function abc(key){ 2 console.log(key); 3 } 4 for(let i=0;i<oInput.length;i++){ 5

JS普通瀏覽器頁面

-s session .html left nes turn pre ref coo 一、利用URL傳參 在頁面跳轉的時候通過設置window.location.href添加參數, 在接收參數的頁面通過window.location.search獲取參數字符串。 1 發送參

JS ajax請求 formData方式

alert UNC log 類型 pan ... tro for als 1 $("#importBtn").click(function(){ 2 if($("#conId").val() == ""){ 3

python函式函式的定義

全部測試程式碼 #!/usr/bin/env python3 #_*_ coding:utf-8 _*_ #函式的定義 #def 方法名(引數列表):下一行縮排編寫方法體,返回值使用return,返回空可直接寫return #將函式定義在py檔案中需要在python直譯器中使用fr

Vue-router(4)路由、命名路由 和 程式設計式導航

路由傳參 案例:現在需要展示一個電影列表頁,點選每一部電影,會跳轉到該部電影詳情頁(跳轉時攜帶type和id) 程式碼實現(未攜帶type): index.js import Vue from 'vue' // 1. 匯入和安裝 import VueRouter from 'vue-ro

Vueurl

在router.js定義需要傳遞的引數 import Vue from 'vue' import Router from 'vue-router' import Home from './views/Home.vue' import Error from './view