首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery:用.each定义一系列变量

jQuery:用.each定义一系列变量
EN

Stack Overflow用户
提问于 2015-08-21 04:45:21
回答 3查看 232关注 0票数 0

我正在寻找合适的方法来使用jQuery每个函数来定义一系列变量,而不是使用传统的javascript循环。

代码语言:javascript
复制
topic1 = $('.selector-circle').children('.selector-1').text();
topic2 = $('.selector-circle').children('.selector-2').text();
topic3 = $('.selector-circle').children('.selector-2').text();

最初,我编写了像上面这样的脚本,但是现在这个项目需要不同数量的“主题”和相应的text(),所以我需要代码是灵活的,而不是我最初使用的更硬编码的方法。

我知道如何在.each中为‘..selector 1’部分插入一个变量,每个索引都是"i“:

代码语言:javascript
复制
topic1 = $('.selector-circle').children('.selector-' + i).text();

但是,我不知道如何序列化"topic1“变量名,使其本质上成为”主题+ i“,无论每次运行多少次,然后将其绑定到每个”选择器+ i“。

似乎我需要一个数组来创建。

谢谢你,提前,为任何和所有有用的指示。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-08-21 05:06:03

您可以简单地使用wildcard选择来选择您的所有子级。它是动态的,您不必管理单独的数组来跟踪元素。

代码语言:javascript
复制
<div class="selector-circle">
    <p class="selector-1 someother-class">selector 1</p>
    <p class="selector-2">selector 2</p>
    <p class="selector-3">selector 3</p>
    <p class="selector-4">selector 4</p>
    <p class="selector-5">selector 5</p>
</div>

JavaScript

代码语言:javascript
复制
var $selectors = $('.selector-circle').children('[class^="selector-"]');

$.each($selectors, function() {
    var title = $(this).text();

    console.log(title);
});

输出

代码语言:javascript
复制
selector 1

selector 2

selector 3

selector 4

selector 5

如果以后添加selector-6selector-7等,则上述代码仍将运行而不需要更改。

这是工作的小提琴

票数 1
EN

Stack Overflow用户

发布于 2015-08-21 04:53:55

一个数组会好得多。根据您想要处理的数据,您甚至可能不需要这样做。您希望使用jQuery、.filter().map()方法。

代码语言:javascript
复制
var topics = $('.selector-circle').children().filter(function () {
    return this.className.match(/\bselector-\d+/);
}).map(function() {
    return $(this).text();
}).get();
//result: ["topic1", "topic2", "topic3", ....]
票数 1
EN

Stack Overflow用户

发布于 2015-08-21 04:54:35

一种简单的方法是为此使用数组:

代码语言:javascript
复制
var arrOfData = [];
var length = 3; // change this if you need something dynamic

// fill the array
for(var i = 1 ; i <= length; i++)
{
   arrOfData.push($('.selector-circle').children('.selector-' + i).text());
}

// Heres how you fetch data
function getTitle(idx){
   return arrOfData[idx];
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32132503

复制
相关文章

相似问题

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