使用对象时,评估嵌套在对象中的 jQuery 代码



我有一个JS对象,如下所示:

{
  'element1': {
    'redirectURI': 'abc.php?toDate=' + encodeURIComponent(jQuery('.dateField1').val())
  },
  'element2': {
    'redirectURI': 'pqr.php?&toDate=' + encodeURIComponent(jQuery('.dateField2').val())
  }
};

我需要在使用对象时评估重定向URI索引,即obj['element1']['redirectURI']obj['element2']['redirectURI']时。

如何实现这一点?

现在jQuery('.dateField1').val(),jQuery('.dateField2').val()取解析此对象时可用的值,日期字段是日期选择器,其值可能会有所不同。

谢谢。

只需使用函数。不要忘记将它们称为函数(稍后使用"()")。

{
  'element1': {
    'redirectURI': function() { return 'abc.php?toDate=' + encodeURIComponent(jQuery('.dateField1').val());}
  },
  'element2': {
    'redirectURI': function() {return 'pqr.php?&toDate=' + encodeURIComponent(jQuery('.dateField2').val());}
  }
};

你为什么不把redirectURI变成一个函数。这样你就可以做到

obj['element2']['redirectURI']()

'element1':{'redirectURI' : function(){return 'abc.php?toDate='+encodeURIComponent(jQuery('.dateField1').val())}}

编辑:正如您在评论中询问的那样,我尝试了自调用

var obj = {
'element1':{'redirectURI' : (function(){return 'hello'})()}
};
console.log(obj['element1']['redirectURI']);

以及它在这种情况下的工作

最新更新