【问题标题】:How to execute a function on an element that has been selected by the value of a data-attribute?如何对已通过数据属性值选择的元素执行函数?
【发布时间】:2020-07-15 13:35:06
【问题描述】:

很抱歉这个冗长的问题。我的情况是这样的。

我有 10 个 HTML 连续元素,每个元素如下所示: (为了清楚起见,我将 div 留空,因为它们不相关)

<div class="item" data-id="1" style="left: 0px; top: 0px; transform: translateX(0px) 
translateY(0px)">
  <div class="item-content">
    <div class="card-add"> </div>
 </div>
</div>

除了“data-id”属性之外,所有元素都是相同的。在每个元素中,data-id 的范围为 1-10。 我的目标是通过其 data-id 值选择“item”,然后在相对于所选项目的“card-add”div 上执行一个函数。 要选择的值将从特定的数字随机生成。

到目前为止我的代码:

// select the value

     myNumbers = [1, 2, 6, 9, 11];
     var item = myNumbers[Math.floor(Math.random() * myNumbers.length)];


 // use this to select the current item

     var itemTemp = ($("[data-id=" + item + "]"));


// attempting to execute a function on this.

      $(itemTemp).find(".card-add").each(function() { 
        *do stuff here*
      }

显然,这似乎不起作用。我认为这与绑定'find'和'each'函数有关。

有人对此有解决方案吗?

【问题讨论】:

  • 您的数组被声明为myNumbers,但您的item 尝试获取myItems 的索引。一旦你纠正了它,它就可以工作了。
  • 抱歉,这是一个错字,已修复,但仍然无法正常工作
  • 现在您在 JavaScript 的最底部缺少 )};

标签: javascript html jquery


【解决方案1】:

将语音标记改为引号:

$(itemTemp).find('.card-add').each(function() { 做点什么 }

【讨论】:

    猜你喜欢
    • 2013-12-21
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 2019-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-12
    相关资源
    最近更新 更多