JQuery-如何使用属性将变量用作选择器?

JQuery-如何使用属性将变量用作选择器?,jquery,selector,Jquery,Selector,我想做的是: var theId = anId; $('#someId .someClass[id=' + theId + ']').css('border-color', 'red'); …但对“选择器部件”使用变量: (很遗憾,这不起作用。我需要帮助更正此语法) 我尝试了几种不起作用的语法。希望有人能帮忙。提前感谢您的回复。干杯马克 $('#someId .someClass #'+theId).css('border-color', 'red'); 将得到一个id为的.someCla

我想做的是:

var theId = anId;

$('#someId .someClass[id=' + theId + ']').css('border-color', 'red');
…但对“选择器部件”使用变量:

(很遗憾,这不起作用。我需要帮助更正此语法)

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

$('#someId .someClass #'+theId).css('border-color', 'red');
将得到一个id为的.someClass的子级

$('#someId .someClass#'+theId).css('border-color', 'red');
将获取id为的.someClass的实例

$('#someId .someClass#'+theId).css('border-color', 'red');
将得到一个id为的.someClass的子级

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

将获得id为theId的.someClass的实例。编辑后,我认为您应该执行以下操作:

$('#someId .someClass#'+theId).css('border-color', 'red');
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'); 
});

编辑后,我认为您应该这样做:

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'); 
});

如果您的问题是如何缓存动态构造以供重用的选择器,则可以执行以下操作:

$("div p a " + someOtherSelectorRequirement).click(function(){ });
可以成为

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

如果您询问是否可以在对象或变量中重复使用同一选择器。

如果您的问题是如何缓存为重复使用而动态构造的选择器,则可以执行以下操作:

$("div p a " + someOtherSelectorRequirement).click(function(){ });
可以成为

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

如果您询问是否可以在对象或变量中重复使用相同的选择器。

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

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

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


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

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

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

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



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

我不明白,你想要
的孩子。某个类的ID为theId的孩子?这个问题很让人困惑。选择器只不过是字符串,
$()
不返回选择器。不清楚您想要什么。你的第一个样品应该有用。我不清楚你的第二个示例。你能不能只用
$('#'+theId)
?大家好。谢谢你的帮助。我修改了我正在尝试做的事情,但它不起作用。我编辑了我的帖子。检查一下……我不明白,你想要一个
.someClass
的孩子,他的ID是?这个问题很让人困惑。选择器只不过是字符串,
$()
不返回选择器。不清楚您想要什么。你的第一个样品应该有用。我不清楚你的第二个示例。你能不能只用
$('#'+theId)
?大家好。谢谢你的帮助。我修改了我正在尝试做的事情,但它不起作用。我编辑了我的帖子。检查一下……为什么退货是假的;在那里?效率;当条件满足时,我们退出循环。这不是我要找的。可能是因为我的帖子不清楚。我刚刚编辑了它。你可以查一下。你会更清楚我现在想做什么…为什么返回是错误的;在那里?效率;当条件满足时,我们退出循环。这不是我要找的。可能是因为我的帖子不清楚。我刚刚编辑了它。你可以查一下。你会更清楚我现在想做什么…你好,温和的毛毛。这不是我要找的。可能是因为我的帖子不清楚。我刚刚编辑了它。你可以查一下。你会更清楚我现在想做什么…你好,温和的毛毛。这不是我要找的。可能是因为我的帖子不清楚。我刚刚编辑了它。你可以查一下。你会更清楚我现在想做什么…你好,太空野牛。这不是我要找的。可能是因为我的帖子不清楚。我刚刚编辑了它。你可以查一下。你会更清楚我现在想做什么…你好,太空野牛。这不是我要找的。可能是因为我的帖子不清楚。我刚刚编辑了它。你可以查一下。你会更清楚我现在想做什么。。。