【问题标题】:Passing value and displaying it as an object - jquery传递值并将其显示为对象 - jquery
【发布时间】:2013-09-15 11:36:32
【问题描述】:

这可能看起来很野蛮;我正在尝试传递 fApp 和 sApp 并将它们称为对象并被视为 jquery 对象。因此 fApp 将恰好适合此处:$(ele).obj[fApp](to); 并被视为 .insertAfter。它们甚至不需要是对象;我只是想要一种方法,这样我就可以传递值,而不是编写 1000 个追加、前置和其他内容。

再次解释

我知道,我不知道该怎么解释。几乎只是取“fApp”并将值设置为“prependTo”,然后在这里调用它“$(ele).obj[fApp](to);”并让它表现得好像它是一个实际的prependTo

这整个功能只是我的移动附加程序和桌面重新附加程序。 from 的值是抓取父元素的值,并且在更改为桌面视图时知道在它之后或之前追加、前置、之后或之前。

function appendMaster(ele, to, fApp, sApp) {
    var from = $(ele).parent();
    console.log(fApp);

    var obj = new Object;
    var obj2 = new Object;
    obj[fApp] = fApp;
    obj2[sApp] = sApp;

    var width = $(window).width();
    if (width < 640) {
        $(ele).obj[fApp](to);
    };
    if (width > 640 && width < 966) {
        // Do something
    };
    if (width > 966) {
        $(ele).obj2[sApp](from);
    };
}

appendMaster("#forming","body", "prependTo", "prependTo");

【问题讨论】:

  • 真的很难说你在说什么。
  • 我知道,我不知道该怎么解释。几乎只是取“ fApp ”并将值设置为“ prependTo ”,然后在这里调用它“ $(ele).obj[fApp](to); ”并让它表现得好像它是一个实际的 prependTo
  • “obj”应该是什么?我认为这可能应该是 $(ele)[fApp](to) - 您正在寻找的术语是“计算属性名称”
  • 是的,它成功了!非常感谢。

标签: javascript jquery object append


【解决方案1】:

您可以在 JS 中通过两种方式寻址属性:

  • obj.prop
  • obj['prop']

您可以在上面的字符串表示法中放置一个变量,而不是'prop',在您的情况下为fApp

function appendMaster(ele, to, fApp, sApp) {
  var from = $(ele).parent();
  console.log(fApp);

  var width = $(window).width();
  if (width < 640) {
      $(ele)[fApp](to);
  };
  if (width > 640 && width < 966) {
      // Do something
  };
  if (width > 966) {
      $(ele)[sApp](from);
  };
}

【讨论】:

    猜你喜欢
    • 2014-06-09
    • 2020-03-10
    • 1970-01-01
    • 2021-05-21
    • 2010-10-30
    • 2018-05-17
    • 1970-01-01
    • 1970-01-01
    • 2021-09-27
    相关资源
    最近更新 更多