0

好吧,这个问题很难说。

假设我想基于另一个选择器创建一个选择器:

var firstChild = $(textDiv).children(":first")
var firstChildAppend = '.ls-active ' + firstChild;
alert(firstChildAppend);

显然,输出不会包含可用的选择器,因为它会包含一个 jquery 对象(firstChild 里面是什么)。好吧,我只想制作 firstChild 文本,这样我就可以用它来创建一个新的选择器。

4

3 回答 3

1

您可以在选择器中使用 find 方法在其后代中查找

var firstChild = $(textDiv).children(":first")
var firstChildAppend = firstChild.find('.ls-active ');

您还可以在上下文中传递选择器。

var firstChild = $(textDiv).children(":first")
var firstChildAppend = $('.ls-active ', firstChild );

我不明白为什么您在语句警报(firstChildAppend)中的警报中有选择器返回的最终集合,如果您想遍历返回的集合,您可以使用each()

firstChildAppend.each(function(){
    alert(this.tagName);
});
于 2013-10-18T14:58:04.387 回答
0

另一种方法,如果您需要实际的选择器,如下所示:

var firstChild = $(textDiv).children(":first")
var firstChildAppend = $(firstChild.selector + ' .ls-active ');

出于某种原因,如果不知道,则需要第一个标准中的“选择器”是有好处的,并且您需要出于某种原因而持有它。不过,一般来说,阿迪尔有最好的解决方案。enter code here

于 2013-10-18T15:07:58.823 回答
0

假设这.ls-active是您的第一个选择器的子元素,您可以使用上下文选择器:

var firstChildAppend = $('.ls-active', firstChild);
于 2013-10-18T14:59:18.873 回答