【问题标题】:Jquery create new object out of DOM [closed]Jquery从DOM中创建新对象[关闭]
【发布时间】:2015-09-21 06:56:54
【问题描述】:

你好,我对 JQuery 比较陌生...更习惯于 PHP 我认为它真的很简单,但我太愚蠢了,如果我诚实的 JS 让我崩溃了......(在 OOP 中我也学到了很多......)

所以我已经发现 PHP 中没有数组。

好的,开始吧。

我的 HTML 看起来像这样:

<div id="content">
    <ul id="ul_1"></ul>
    <ul id="ul_2"></ul>
    <ul id="ul_3"></ul>
</div>

现在我还是想从中生成这个

controller = {
    "#ul_1": 1,
    "#ul_2": 1,
    "#ul_3": 1
};

所以更准确地说,目前它的硬编码就像这行上面的代码示例一样。 但我希望它自动生成 HTML 或更好的 DOM。

我已经尝试过.map.find.each...但我太残废了。

我总是更喜欢它一次完成,所以我的意思是如果可能的话,不要使用.each 进行迭代。我认为也许可以从$.('#content') 对象中创建一个新对象,但我需要它的样式。

非常感谢Rycochet

这是我的情况解决方案

var controller = {};
$("#content > ul").each(function (i, el) {
    controller['#' + $(el).attr('id')] = 1;
});

还有其他解决方案吗?与 .map 一样,还是这是最好、最快和最简单的方法?

【问题讨论】:

  • 我看不出您对象中的键和值与您提供的 HTML 有何关系?
  • 在您的 HTML 中没有 #product#staff#isn 这样的 ID...
  • 真的,真的!对不起,我只改了一半....我会修复它
  • 当我找到编辑按钮时......?
  • 现在它是正确的或更好的说法,就像我想要它一样......

标签: javascript jquery object out


【解决方案1】:

这里完全是猜测 - 但如果你的数据是这样的 -

<div id="content">
    <ul id="ul_1">
        <li>isn</li>
        <li>staff</li>
        <li>product</li>
    </ul>
</div>

那么你可以通过 -

来制作这样一个对象
var controller = {};
$("#ul_1>li").each(function(i, el) {
    controller[$(el).text()] = 1;
});

正如上面的 cmets 所说,您没有提供足够的详细信息来进行猜测。

【讨论】:

  • 非常感谢!现在我用你的方法搞定了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-06
  • 2021-07-22
相关资源
最近更新 更多