2012-03-06 82 views
1

我想什么是做到这一点:JQuery - 如何使用变量作为选择器使用它的属性?

var theId = anId; 

$('#someId .someClass[id=' + theId + ']').css('border-color', 'red'); 

...但使用的“选择部分”一varible:

var mySelector; 

if(condition1){mySelector= $('#someId .someClass');} 
if(condition2){mySelector= $('#anotherId .anotherClass');} 

$.each(anArray, function(i, v) { 
    mySelector[id=' + v.id + '].css('border-color', 'red'); 
}); 

(这是不幸的是没有工作,我需要帮助纠正这个语法)

我尝试了几种不起作用的语法。希望有人能帮忙。预先感谢您的回复。干杯。马克。

+0

我不知道,你想要一个ID为ID的'.someClass'的孩子吗? – 2012-03-06 10:43:37

+0

这个问题很混乱。选择器只是字符串,'$()'不返回选择器。 – 2012-03-06 10:45:05

+0

目前尚不清楚你想要什么。你的第一个样本应该工作。你的第二个样本对我来说还不清楚。 – Tomalak 2012-03-06 10:45:19

回答

1

你的编辑后,我想你应该这样做:

var mySelector_string; 
var theId = anId; 

if(condition1){mySelector_string= '#someId .someClass';} 
if(condition2){mySelector_string= '#anotherId .anotherClass';} 

$.each(anArray, function(i, v) { 
    $(mySelector_string+"[id='" + v.id + "']").css('border-color', 'red'); 
}); 
+0

为什么返回false;在那里? – SpaceBison 2012-03-06 10:52:01

+0

效率;当条件满足时,我们退出循环。 – 2012-03-06 10:56:15

+0

你好DotMat。这不是我正在寻找的。严格地说,因为我在我的帖子中不清楚。我刚刚编辑它。你可以检查。这将更清楚你现在正在做什么... – Marc 2012-03-06 11:05:47

0
$('#someId .someClass #'+theId).css('border-color', 'red'); 

将得到.someClass的孩子ID theId

$('#someId .someClass#'+theId).css('border-color', 'red'); 

将得到.someClass的实例ID为theId

+0

你好温和的模糊。这不是我正在寻找的。严格地说,因为我在我的帖子中不清楚。我刚刚编辑它。你可以检查。这将更清楚你现在正在做什么... – Marc 2012-03-06 11:05:14

0

如果你的问题是你如何缓存一个动态构造的重用选择器,那么你可以做到以下几点:

$("div p a " + someOtherSelectorRequirement).click(function(){ }); 

可以成为

var a = $("div p a " + someOtherSelectorRequirement); 
a.each(function(){ Console.Log($(this).text()); 
a.addClass("someClass"); 

如果你是问,如果你能在一个对象或变量重复使用相同的选择。

+0

你好SpaceBison。这不是我正在寻找的。严格地说,因为我在我的帖子中不清楚。我刚刚编辑它。你可以检查。你会更清楚我现在要做什么...... – Marc 2012-03-06 11:06:16

0

我想在你的问题中有几个误用的术语。学习它们可能会帮助你修复你的代码。

jQuery对象实例:它是一个JavaScript对象(除其他外)包含可能在其上执行进一步操作的DOM节点的内部数组。每次您致电jQuery()(可能别名为$()),您都会获得一个。

选择器:这是表示CSS查询规则的JavaScript字符串,例如:"ul>li:first"。 jQuery中的许多函数(包括jQuery()函数)都接受选择器作为参数,并使用它们来查找或过滤当前链中的DOM节点。

所以你基本上有字符串和对象,都是常规的JavaScript数据类型,并像这样的行为。例如,您可以将它们存储在变量中,或将它们作为函数参数传递。您只需要知道CSS选择器与通过它找到的HTML元素之间的区别。

相关问题