JQuery动态更改';属性包含';选择器没有';我不能使用var

JQuery动态更改';属性包含';选择器没有';我不能使用var,jquery,string,variables,dynamic,selector,Jquery,String,Variables,Dynamic,Selector,我有一个元素,其ID以“mn”开头,属于“ElementSubMenutTitle”类,如下所示: $("#mn"+j).append("<p id='mn"+j+"rpt"+i+"' class='elementSubMenuTitle'>"+reportList[i].ReportName+"</p>"); 可以找到“mn0..”但显然我也需要找到“mn1..”和其他,所以我尝试: for(var i = 0; i < catList.length; i++

我有一个元素,其ID以“mn”开头,属于“ElementSubMenutTitle”类,如下所示:

$("#mn"+j).append("<p id='mn"+j+"rpt"+i+"' 
class='elementSubMenuTitle'>"+reportList[i].ReportName+"</p>");
可以找到“mn0..”但显然我也需要找到“mn1..”和其他,所以我尝试:

for(var i = 0; i < catList.length; i++) 
{
var x = String(i);
$("[id^=mn"+x+"]+.elementSubMenuTitle").stop(true,true).fadeOut(200);
}
for(变量i=0;i
但这种方法不起作用。
那么,为什么字符串(0)是一个字符串,而字符串(i)不是?(至少这是我的理论)

详细说明: 有遵循命名法的父元素 mn0 mn1 二氧化锰 mn3 .. 这些本身是通过循环设置的

如果是mn0的子元素,则有以mn0开头的子元素,例如mn0rpt0是mn0的子元素,但不是唯一的子元素。我特别感兴趣的孩子们有类
elementsubminutitle
,也以mn0开头。mn1和它的孩子们也是如此

循环的目的是为“mnx”的子集合设置特定的行为。这种行为会因x的不同而有所不同。例如,$(mnx的子对象)需要放置在$(mn(x-1)的子对象)下面(x*30)个像素,等等。因此,x是必需的,因此循环也是必需的

最后,我要问的是,当插入到$(“[id^=mn”+x+“]+.elementSubMenutTitle”)中时,为什么
var x=String(I)
不起作用,而
var x=String(0)
起作用

您根本不需要循环:

$("[id^=mn].elementSubMenuTitle").stop(true,true).fadeOut(200);
显然,您不再需要将选择器串在一起,因此也不需要
+
。这从字面上理解为您对

以“mn”开头且属于“ElementSubMenutTitle”类的ID


$(“[id^='mn']”
不够吗?@j08691:如果页面其他地方有
,该怎么办?:)是的,该类应该添加到该实例中的starts with选择器中(并且是显式请求的)。如果是单个ID匹配,则该类将过时。添加该类与此无关,因为ID是唯一的(或者应该是唯一的)。@j08691:您的意见不考虑以
mn
开头的其他ID。这不是一个单一的匹配:)问题很清楚,
一个以“mn”开头的ID,属于“elementsubnumtitle”类
+1,也用于删除选择器中的
+
。也许你应该解释一下it@Brewal:
+
仅用于将索引值周围的元素串在一起。正如他们已经知道的那样,我假设他们知道is是做什么的,但我将详细说明:)@TrueBlueAussie:在这一点上,我不一定担心它是否以“mn”开头或包含“mn”,只要它是一个或另一个;我意识到这里^和*的区别。但实际上,我需要它“开始”,所以我将使用^。谢谢你让我知道我需要澄清这一点。
$("[id^=mn].elementSubMenuTitle").stop(true,true).fadeOut(200);