首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在运行Javascript时区分具有相同类或ID的多个div的方法

在运行Javascript时区分具有相同类或ID的多个div的方法
EN

Stack Overflow用户
提问于 2017-02-23 23:31:29
回答 3查看 700关注 0票数 0

我正在为发票上的id生成QR代码。

现在,我在要运行qr代码的每个地方都有一个javascript,并生成代码。

代码语言:javascript
复制
<script type="text/javascript">

    function makeCode (data,width) {    
var qrcode = new QRCode(document.getElementById(data), {
    width : width,
    height : width
});

    var length = (data).length;

        if (length===10) {qrcode.makeCode("10" + data);}
        else {qrcode.makeCode(data);}
}
</script>
代码语言:javascript
复制
<div id="[id]"></div><script>makeCode("[id]","50")</script>

我之所以必须使用id作为div的"id“,是因为它是我为该项目获得的唯一动态内容。

问题是,当我有多个具有相同id的项目时,javascript当然是将所有QR代码堆积到第一个具有该id的<div>中。

有没有办法让javascript知道它是从第三个DIV运行的(举个例子),然后将代码放入第三个DIV,而不是第一个DIV。

我知道,您不应该有多个具有相同ID元素的div。这是问题的一部分,我试图使他们独特,但我不知道如何。

我加了一个小提琴,这样你就能更清楚地看到这个问题了。

https://jsfiddle.net/nmteaco/x57o9pko/3/

EN

回答 3

Stack Overflow用户

发布于 2017-02-23 23:42:49

将html更改为:

代码语言:javascript
复制
<div data-content="qr-content" data-value="Your qr content"></div>
    <script>
       var elements = document.queryselectorall('[data-content="qr-content"]');
       for (var i=0; i<elements.length; i++)
           makeCode(elements[i].getAttribute('data-value'), 50);
        }
   </script>
票数 0
EN

Stack Overflow用户

发布于 2017-02-24 01:50:06

正如前面提到的,在您当前的网站逻辑中,很少有东西需要调整以适应更多的动态。

首先,应该有一个表示购物车的table,在这个购物车中,您可以有多个QRcode生成的条目。每个id都可以有一个索引标志1..2.3.

我已经做了一个演示,如何解决您的问题可以通过改变您的html结构。

演示

让我知道你的想法。

票数 0
EN

Stack Overflow用户

发布于 2017-02-24 03:46:15

我不知道这是怎么回事。

但是,在“产品”的产品中添加一个类并在文档末尾发布以下代码是有效的。

代码语言:javascript
复制
    $.each($(".product"), function(index, value){
    var num = index + 1;
    $(value).attr("id","qrcode"+ num);
});

它使每个id在运行后都是唯一的。然而,不知何故,仍然知道要将正确的图像放入哪个div。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42428145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档