亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

javascript根據url參數從數組中獲取屬性

javascript根據url參數從數組中獲取屬性

嚕嚕噠 2023-10-14 18:34:54
我正在嘗試根據 url 中的值過濾 json 數組并獲取屬性vernacularName。在 F12 調試中,我可以輸入record[0].vernacularName;它,它給了我正確的變量,但下面的代碼仍然失敗。document.getElementById("demo").innerHTML = datasetID;有效但document.getElementById("demo").innerHTML = vernacularName;無效。最終我想添加 vernauralName 作為會話變量<body>  <div class="">    <h3>testing data</h3>  <p id="demo" class = 'pl-5'></p>      </div><script type="text/javascript">  const queryString = window.location.search;  const urlParams = new URLSearchParams(queryString);  const species = urlParams.get('species')  const bone = urlParams.get('bone')  const datasetID = urlParams.get('datasetID')  var data;  $.getJSON("json/data.json", function(json){    data = json;  });  record = data.filter(r => r.datasetID == datasetID);  var vernacularName = record[0].vernacularName;  // const vernacularName2 = record.vernacularName;  $_SESSION["v"] = vernacularName;</script><script>document.getElementById("demo").innerHTML = vernacularName;</script>
查看完整描述

1 回答

?
慕雪6442864

TA貢獻1812條經驗 獲得超5個贊

首先,我不確定為什么


document.getElementById("demo").innerHTML = vernacularName;

位于其自己的script標簽內。這看起來很奇怪。


無論如何,這里的問題是數據還沒有準備好。在數據返回給您之前,您無法開始處理數據并使用它來更新頁面上的元素。


這就是第二個參數的全部要點- 它是在獲取數據后getJSON成功調用的函數。


因此,其余代碼應該全部放在該函數內:


? $.getJSON("json/data.json", function(json) {

? ? const data = json;

? ? const record = data.filter(r => r.datasetID === datasetID);

? ? const vernacularName = record[0].vernacularName;

? ? $_SESSION["v"] = vernacularName;

? ? document.getElementById("demo").innerHTML = vernacularName;

? });

旁注:var既然您似乎正在使用 ES6+,那么除非您有充分的理由,否則您不應該使用。let代替使用。



查看完整回答
反對 回復 2023-10-14
  • 1 回答
  • 0 關注
  • 117 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號