繁体   English   中英

javascript字符串值转换为变量

[英]javascript string value to variable

所以我有一个有趣的问题。 尽管我已经找到了解决方案,但我想知道您对此有何看法。

详细信息:我有一个用于扫描某些ID的JavaScript前端脚本。 为了使它更易于使用,脚本将保存所有扫描的ID并将其存储在数组中。 用户扫描ID后,该ID将显示在div中,并且还会放置在隐藏的输入中以供进一步提交操作。 看起来像这样:

<div id="scan_output">
    <div class="alert alert-success" style="">
        <button class="close single-scan-output-close" data-dismiss="alert">×</button>
        <div>ID #66666</div>
        <input type="hidden" value="herp;66666;derp" name="data[Stock][0]">
    </div>
    <div class="alert alert-success" style="">
        <button class="close single-scan-output-close" data-dismiss="alert">×</button>
        <div>ID #987654</div>
        <input type="hidden" value="blub;987654;foo" name="data[Stock][1]">
    </div>
    <div class="alert alert-success" style="">
        <button class="close single-scan-output-close" data-dismiss="alert">×</button>
        <div>ID #123456</div>
        <input type="hidden" value="foo;123456;bar" name="data[Stock][2]">
    </div>
</div>

如您所见,输入中有一些不同的值,因为必须将具有更多信息的这种格式上载到后端。 我刚刚添加了一些虚拟数据。

name属性将索引存储在第二维中,在后端也很方便,因为您可以获得数组。 此索引也是javascript数组的索引,其中存储ID以进行唯一检查,因此如果用户扫描ID两次,则将通知用户。

因此,如果用户不小心扫描了错误的内容,则可以通过单击“ x”按钮将其删除。

我的第一次尝试如下。 触发“关闭”事件后,我捕获了当前元素,该元素已通过以下方式关闭:

var $inputElement = $this.parent().find('input[type=hidden]');
var sNameAttribute= $inputElement.attr('name');

现在,名称属性以简单的字符串形式存储在“ sNameAttribute”中,如下所示:“ data [Stock] [1]”或“ data [Stock] [2]”当然取决于他单击的元素。

我没有弄清楚如何从该字符串值获取索引。 我不想使用“ split”或regex-filter之类的解决方法。

为了完成任务,我只向输入添加了一些数据属性,索引被存储为普通变量,如下所示:

<input type="hidden" value="blub;987654;foo" name="data[Stock][1]">

我的问题是,您将如何解决该问题,或者如何从存储在名称属性中的字符串值“ data [Stock] [1]”中获取索引。 我尝试了一些eval()函数,但没有得到有用的结果。

如果是要获取事件发生在哪个div / button的索引,则在页面加载时绑定onclick事件并获取索引会不好吗?

$('.single-scan-output-close').click(function (event) {
    alert($(this).index());
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM