目次
1. HTML タグの暗黙的な作成
2.window['data']
3 のテンプレートを使用します。localStorage、cookie などを使用して
この拡張機能
これを使用してパラメータを渡します。art-template を使用しているときにそれを理解しました。ID を 1 つだけ渡して、それを複数のパラメータに結合する必要はもうありません。ハッピー!
これを使用できるため、
7です。文字列パラメータの受け渡し
単一パラメータ
複数パラメータの受け渡し
複雑なパラメータの受け渡し
8.arguments
最初にサブスクライブしてからパブリッシュする、最初にパブリッシュしてからパブリッシュすることをサポートします。 subscribe
ホームページ ウェブフロントエンド jsチュートリアル JavaScriptでパラメータを渡す方法

JavaScriptでパラメータを渡す方法

Jun 27, 2021 am 10:26 AM
javascript

JavaScript でパラメータを渡す方法: まず、対応する js ファイルを作成し、次に「functionalertInfo(name, age, home, friends) {...}」を通じてパラメータを渡します。

JavaScriptでパラメータを渡す方法

この記事の動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

JavaScript でパラメータを渡すにはどうすればよいですか?

JS パラメータ受け渡しスキルの概要

1. HTML タグの暗黙的な作成

<input type="hidden" name="tc_id" value="{{tc_id}}">
ログイン後にコピー
このメソッドは通常、ajax で使用され、上記の値はEngine

2.window['data']

window["name"] = "the window object";
ログイン後にコピー
window.localStorage.setItem("name", "xiaoyueyue");
window.localStorage.getItem("name");
ログイン後にコピー
機能を保存します: cookie、localStorage、sessionStorage 、indexDB
##データ ストレージ サイズサーバーとの通信からわかるように、上の表、
機能 cookie localStorage sessionStorage indexDB
データ ライフ サイクル 通常はサーバーによって生成され、有効期限を設定できます クリアしない限り常に存在します ページを閉じるとクリア クリアしない限り常に存在
4K 5M 5M 無制限
毎回ヘッダーに組み込まれ、影響を与えますリクエストのパフォーマンス 参加しません 参加しません 参加しません
cookie

はストレージとして推奨されなくなりました。大規模なデータ ストレージ要件がない場合は、localStorage および sessionStorage を使用できます。あまり変更のないデータの場合は、localStorage を使用して保存してください。そうでない場合は、sessionStorage を使用して保存してください。 注:

object
型のデータを保存する場合、このディープ コピー メソッドは関数と unknown<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">var obj = {   type: undefined,   text: &quot;xiaoyueyue&quot;,   methord: function() {     alert(&quot;I am an methord&quot;);   } }; localStorage.setItem(&quot;data&quot;, JSON.stringify(obj)); console.log(JSON.parse(localStorage.getItem(&quot;data&quot;))); // {text: &quot;xiaoyueyue&quot;}</pre><div class="contentsignin">ログイン後にコピー</div></div>4 を無視します。アドレス バーの取得メソッド

独自のカプセル化メソッド
  1. function parseParam(url) {
      var paramArr = decodeURI(url)
          .split("?")[1]
          .split("&"),
        obj = {};
      for (var i = 0; i < paramArr.length; i++) {
        var item = paramArr[i];
        if (item.indexOf("=") != -1) {
          var tmp = item.split("=");
          obj[tmp[0]] = tmp[1];
        } else {
          obj[item] = true;
        }
      }
      return obj;
    }
    ログイン後にコピー
  2. 2.正規表現メソッド
function GetQueryString(name) {
  var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
  var r = window.location.search.substr(1).match(reg);
  if (r != null) return unescape(r[2]);
  return null;
}
ログイン後にコピー

5.タグ バインディング関数のパラメータ渡し

<!--base-->
<button id="test1" onclick="alert(id)">test1</button>

<!--高级-->
<button
  id="test"
  name="123"
  yue="xiaoyueyue"
  friend="heizi"
  onclick="console.log(this.getAttribute(&#39;yue&#39;),this.getAttribute(&#39;friend&#39;))"
>
  test
</button>
ログイン後にコピー

この拡張機能

これを使用してパラメータを渡します。art-template を使用しているときにそれを理解しました。ID を 1 つだけ渡して、それを複数のパラメータに結合する必要はもうありません。ハッピー!

var box = document.createElement("p");
box.innerHTML =
  "<button id=&#39;1&#39; data-name=&#39;xiaoyueyue&#39; data-age=&#39;25&#39; data-friend=&#39;heizi&#39; onclick=&#39;alertInfo(this.dataset)&#39;>点击</button>";
document.body.appendChild(box);

// name,age,friend
function alertInfo(data) {
  alert(
    "大家好,我是" +
      data.name +
      ", 我今年" +
      data.age +
      "岁了,我的好朋友是" +
      data.friend +
      " !"
  );
}
ログイン後にコピー

ここで注意すべき点が 1 つあります。保存されたデータは、大文字 => を含む単語は一律に小文字に変換されます。たとえば、実際の値が

this の場合、 data-orderId = “2a34fb64a13211e8a0f00050568b2fdd” です。 dataset.orderid
;event

これを使用できるため、

event.target

メソッドもイベントで使用できます: クラスに従って現在のインデックス値を取得します。パラメータはイベント オブジェクト

  var getIndexByClass =  function (param) {
    var element = param.classname ? param : param.target;
    var className = element.classname;
    var domArr = Array.prototype.slice.call(document.querySelectorAll('.' + className));
    for (var index = 0; index < domArr.length; index++) {
      if (domArr[index] === element) {
        return index;
      }
    }
    return -1;
  },
ログイン後にコピー
6.HTML5 data-* カスタム属性
<button data-name="xiaoyueyue">点击</button>
ログイン後にコピー
var btn = document.querySelector("button");
btn.onclick = function() {
  alert(this.dataset.name);
};
ログイン後にコピー

7です。文字列パラメータの受け渡し

単一パラメータ

var name = "xiaoyueyue",
  age = 25;

var box = document.createElement("p");
box.innerHTML = "<button onclick=\"alertInfo(&#39;" + name + "&#39;)\">点击</button>";
document.body.appendChild(box);

// name, age
function alertInfo(name, age, home, friend) {
  alert("我是" + name);
}
ログイン後にコピー

複数パラメータの受け渡し

  var name = 'xiaoyueyue',
      age = '25',
      home = 'shanxi',
      friend = 'heizi',
      DQ = "&quot;"; // 双引号的超文本标记语言

    var params = "&quot;" + name + "&quot;,&quot;" + age + "&quot;,&quot;" + home + "&quot;,&quot;" + friend + "&quot;";
    var params2 = DQ + name + DQ + ',' + DQ + age + DQ + ',' + DQ + home + DQ + ',' + DQ + friend + DQ;
    var box = document.createElement("p");
    box.innerHTML = "<button onclick=&#39;alertInfo(" + params + ")&#39;>点击</button>";
    console.log(box)
    document.body.appendChild(box);


    // name, age,home,friend
    function alertInfo(name, age, home, friend) {
      alert("我是" + name + ',' + "我今年" + age + "岁了!")
ログイン後にコピー

複雑なパラメータの受け渡し

var data = [
  {
    name: "xiaoyueyue",
    age: "25",
    home: "shanxi",
    friend: "heizi"
  }
];

var box = document.createElement("p"),
  html = "";

for (var i = 0; i < data.length; i++) {
  html +=
    "<button id=&#39;btn&#39;  onclick=&#39;alertInfo(id,\"" +
    data[i].name +
    &#39;","&#39; +
    data[i].age +
    &#39;","&#39; +
    data[i].home +
    &#39;","&#39; +
    data[i].friend +
    "\")&#39;>点击</button>";
}
box.innerHTML = html;
document.body.appendChild(box);

function alertInfo(id, name, age, home, friend) {
  alert("我是 " + name + " , " + friend + " 是我的好朋友");
}
ログイン後にコピー

8.arguments

arguments

オブジェクトはすべてです(矢印以外) 関数で使用できるローカル変数。引数オブジェクトを使用すると、関数内で関数のパラメーターを参照できます。配列のようなオブジェクトです。 [推奨学習:

JavaScript 上級チュートリアル

]

function fenpei() {
  var args = Array.prototype.slice.call(arguments);
  alert("我是" + args[2] + "油品,数量为 " + args[1] + " 吨, id为 " + args[0]);
}
ログイン後にコピー
9.form form

form

フォームを使用すると、 ajax はシーケンスを転送します。パラメータ化 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">// form表单序列化,摘自JS高程 function serialize(form) {   var parts = [],     field = null,     i,     len,     j,     optLen,     option,     optValue;   for (i = 0, len = form.elements.length; i &lt; len; i++) { field = form.elements[i]; switch (field.type) { case &quot;select-one&quot;: case &quot;select-multiple&quot;: if (field.name.length) { for (j = 0, optLen = field.options.length; j &lt; optLen; j++) { option = field.options[j]; if (option.selected) { optValue = &quot;&quot;; if (option.hasAttribute) { optValue = option.hasAttribute(&quot;value&quot;) ? option.value : option.text; } else { optValue = option.attributes[&quot;value&quot;].specified ? option.value : option.text; } parts.push( encodeURIComponent(field.name) + &quot;=&quot; + encodeURIComponent(optValue) ); } } } break; case undefined: //fieldset case &quot;file&quot;: //file input case &quot;submit&quot;: //submit button case &quot;reset&quot;: //reset button case &quot;button&quot;: //custom button break; case &quot;radio&quot;: //radio button case &quot;checkbox&quot;: //checkbox if (!field.checked) { break; } /* falls through */ default: //don&amp;#39;t include form fields without names if (field.name.length) { parts.push( encodeURIComponent(field.name) + &quot;=&quot; + encodeURIComponent(field.value) ); } } } return parts.join(&quot;&amp;&quot;); }</pre><div class="contentsignin">ログイン後にコピー</div></div> Chestnut:

<form id="formData">
  <p class="pop-info">
    <label for="ordersaleCode">订单编号:</label>
    <input
      type="text"
      id="ordersaleCode"
      name="ordersaleCode"
      placeholder="请输入订单编号"
    />
  </p>
  <p class="pop-info">
    <label for="extractType">配送方式:</label>
    <select id="extractType" name="extractType" class="mySelect">
      <option value="0" selected>配送</option>
      <option value="1">自提</option>
    </select>
  </p>
</form>
<button>获取参数</button>
ログイン後にコピー
document.querySelector("button").onclick = function() {
  console.log("param: " + serialize(document.getElementById("formData"))); // param: ordersaleCode=&extractType=0
};
ログイン後にコピー

10. 複雑なロジック パラメータ転送を処理するためのパブリッシュとサブスクライブ

最初にサブスクライブしてからパブリッシュする、最初にパブリッシュしてからパブリッシュすることをサポートします。 subscribe

メソッド ソース コード
  • var Event = (function() {
      var clientList = {},
        pub,
        sub,
        remove;
    
      var cached = {};
    
      sub = function(key, fn) {
        if (!clientList[key]) {
          clientList[key] = [];
        }
        // 使用缓存执行的订阅不用多次调用执行
        cached[key + "time"] == undefined ? clientList[key].push(fn) : "";
        if (cached[key] instanceof Array && cached[key].length > 0) {
          //说明有缓存的 可以执行
          fn.apply(null, cached[key]);
          cached[key + "time"] = 1;
        }
      };
      pub = function() {
        var key = Array.prototype.shift.call(arguments),
          fns = clientList[key];
        if (!fns || fns.length === 0) {
          //初始默认缓存
          cached[key] = Array.prototype.slice.call(arguments, 0);
          return false;
        }
    
        for (var i = 0, fn; (fn = fns[i++]); ) {
          // 再次发布更新缓存中的 data 参数
          cached[key + "time"] != undefined
            ? (cached[key] = Array.prototype.slice.call(arguments, 0))
            : "";
          fn.apply(this, arguments);
        }
      };
      remove = function(key, fn) {
        var fns = clientList[key];
        // 缓存订阅一并删除
        var cachedFn = cached[key];
        if (!fns && !cachedFn) {
          return false;
        }
        if (!fn) {
          fns && (fns.length = 0);
          cachedFn && (cachedFn.length = 0);
        } else {
          if (cachedFn) {
            for (var m = cachedFn.length - 1; m >= 0; m--) {
              var _fn_temp = cachedFn[m];
              if (_fn_temp === fn) {
                cachedFn.splice(m, 1);
              }
            }
          }
          for (var n = fns.length - 1; n >= 0; n--) {
            var _fn = fns[n];
            if (_fn === fn) {
              fns.splice(n, 1);
            }
          }
        }
      };
      return {
        pub: pub,
        sub: sub,
        remove: remove
      };
    })();
    ログイン後にコピー
  • WeChat アプレットで使用される例:

グローバル マウント use
  • // app.js
    App({
      onLaunch: function(e) {
        // 注册 storage,这是第二条
        wx.Storage = Storage;
        // 注册发布订阅模式
        wx.yue = Event;
      }
    });
    ログイン後にコピー
使用例
  • // 添加收货地址页面订阅
     onLoad: function (options) {
            wx.yue.sub("addAddress", function (data) {
                y.setData({
                    addAddress: data
                })
            })
     }
    /**
     * 生命周期函数--监听页面隐藏
     */
     onHide: function () {
        // 取消多余的事件订阅
        wx.Storage.removeItem("addAddress");
    },
     onUnload: function () {
        // 取消多余的事件订阅
        wx.yue.remove("addAddress");
    }
    ログイン後にコピー
    // 传递地址页面获取好数据传递
    wx.yue.pub("addAddress", data.info);
    // 补充跳转返回
    ログイン後にコピー
  • 注: データ使用後のアンインストールには注意し、ページを閉じた状態で操作してください

以上がJavaScriptでパラメータを渡す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 Dec 17, 2023 pm 02:54 PM

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー Dec 17, 2023 pm 05:30 PM

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 Dec 17, 2023 pm 12:09 PM

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 Dec 17, 2023 am 09:39 AM

WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 Dec 17, 2023 pm 05:13 PM

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 Jan 05, 2024 pm 06:08 PM

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

JavaScriptでinsertBeforeを使用する方法 JavaScriptでinsertBeforeを使用する方法 Nov 24, 2023 am 11:56 AM

使用法: JavaScript では、insertBefore() メソッドを使用して、DOM ツリーに新しいノードを挿入します。このメソッドには、挿入される新しいノードと参照ノード (つまり、新しいノードが挿入されるノード) の 2 つのパラメータが必要です。

JavaScript で HTTP ステータス コードを簡単に取得する方法 JavaScript で HTTP ステータス コードを簡単に取得する方法 Jan 05, 2024 pm 01:37 PM

JavaScript で HTTP ステータス コードを取得する方法の紹介: フロントエンド開発では、バックエンド インターフェイスとの対話を処理する必要があることが多く、HTTP ステータス コードはその非常に重要な部分です。 HTTP ステータス コードを理解して取得すると、インターフェイスから返されたデータをより適切に処理できるようになります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法と、具体的なコード例を紹介します。 1. HTTP ステータス コードとは何ですか? HTTP ステータス コードとは、ブラウザがサーバーへのリクエストを開始したときに、サービスが

See all articles