首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JQuery动态更改的“属性包含”选择器不适用于var

JQuery动态更改的“属性包含”选择器不适用于var
EN

Stack Overflow用户
提问于 2014-11-05 15:41:57
回答 1查看 145关注 0票数 0

我有一个元素,其ID以"mn“开头,属于"elementSubMenuTitle”类,创建方式如下:

代码语言:javascript
运行
复制
$("#mn"+j).append("<p id='mn"+j+"rpt"+i+"' 
class='elementSubMenuTitle'>"+reportList[i].ReportName+"</p>");

如果我使用$("[id^='mn0']+.elementSubMenuTitle")的jquery选择器,它可以找到我的第一个元素( mn0rpt0 ),但是我需要它能够循环遍历这些元素中的未知数目,这些元素遵循mn0rpt0、mn0rpt1、mn1rpt2等模式。

代码语言:javascript
运行
复制
var x = String(0); 
$("[id^=mn"+x+"]+.elementSubMenuTitle").stop(true,true).fadeOut(200); 

找到“mn0.”但显然我也需要找到“mn1.”其他人,所以我试着:

代码语言:javascript
运行
复制
for(var i = 0; i < catList.length; i++) 
{
var x = String(i);
$("[id^=mn"+x+"]+.elementSubMenuTitle").stop(true,true).fadeOut(200);
}

但这种方法行不通。

那么,为什么字符串(0)生成字符串,而String(i)不生成字符串?(至少这是我的理论)

详细说明:在命名mn0 mn1 mn2 mn3之后有父元素。它们本身是由一个循环设置的。

有一些以mn0开头的子元素,如果是mn0的子元素,例如mn0rpt0是mn0的子元素,但不是唯一的子元素。我感兴趣的孩子有elementSubMenuTitle类,并以mn0开头。mn1也是如此,孩子们也是如此。

循环的目的是为"mnx“的子集合设置特定的行为。这种行为将根据x的不同而变化。例如,$(mnx的子元素)需要放置在$(mn(x-1)的子元素)下面(x*30)像素以下,等等。因此,x是必需的,因此也就是循环。

最终,我要问的是,当插入$(“var x = String(i)”+x+“+.elementSubMenuTitle”)时,为什么var x = String(0)不能工作,而var x = String(0)却不能工作?

EN

回答 1

Stack Overflow用户

发布于 2014-11-05 15:46:00

使用attribute 选择器:[attr^=value]

您根本不需要循环:

代码语言:javascript
运行
复制
$("[id^=mn].elementSubMenuTitle").stop(true,true).fadeOut(200);

显然,您不再需要将选择器串在一起,因此也不需要+。这实际上是指您对

以"mn“开头的ID,它属于"elementSubMenuTitle”类

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

https://stackoverflow.com/questions/26761141

复制
相关文章

相似问题

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