![](/img/trans.png)
[英]How do you pass PHP string to Javascript/JQuery to use in function?
[英]Jquery - How do you pass a variable into a function to use?
我被一個常見的Jquery發生的問題困擾着,但是我不知道如何解決!
我有5個變量-
var pubtimed
var toolstimed
var newstimed
var mylinkstimed
var partnerstimed
用於存儲打開和關閉狀態。
然后,我有了一個腳本,該腳本檢查cookie的最新狀態並相應地更新變量,然后將詳細信息轉發到渲染函數上-
var map = {
'pub': $.cookie('nwphportal_tabExpPub'),
'tools': $.cookie('nwphportal_tabExpTools'),
'news': $.cookie('nwphportal_tabExpNews'),
'mylinks': $.cookie('nwphportal_tabExpLinks'),
'partners': $.cookie('nwphportal_tabExpPartners')
}
$.each(map, function (key, value) {
if (value != null) {
var varname = key + 'timed';
varname = value;
renderScrn(varname)
} else {
var varname = key + 'timed';
varname = "1"
renderScrn(varname)
}
});
我的問題是我希望變量varname被視為上述5個變量中的每個變量(例如,鍵加時間= pubtimed)。 但這沒有發生,我只是得到一個錯誤。 我可以放置一個if語句列表來解決此問題,但想知道是否有更好的解決方案?
如果可以的話請幫忙!
為您的時間加油。 保羅
我將進行命名空間處理,將相關數據封裝到一個對象中:
var timed = {};
$.each(map, function (key, value) {
if (value != null) {
timed[key] = value;
renderScrn(varname);
}
else {
timed[key] = 1;
renderScrn(varname);
}
});
因此,您可以將它們timed.partners
, timed.pub
等等。
如果它們是全局變量,則可以執行以下操作:
window[key + 'timed'] = value;
如果它們不是全局的(盡管從您發布的內容來看,它們看起來是這樣),則必須將它們保留在容器對象中,有點像“地圖”:
var container = {
pubtimed: null,
// ...
};
// ...
container[key + 'timed'] = value;
編輯 -如@galambalazs在他的回答中所寫,最好避免這樣做。 如果設置了容器,則只需直接使用鍵即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.