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

时间:2016-07-07 07:31:59

标签: javascript jquery

我有一个JS对象:

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

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

如何实现这一目标?

现在jQuery('.dateField1').val(),jQuery('.dateField2').val()获取解析此对象时可用的值,日期字段是datepicker,其值可以变化。

感谢。

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

为什么不让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']);

及其在该案例中的工作