JQuery - 如何使用带有属性的变量作为选择器?

时间:2012-03-06 10:41:49

标签: jquery selector

我想要的是:

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

(遗憾的是,这不起作用。我需要帮助来纠正这种语法)

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

4 个答案:

答案 0 :(得分: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'); 
});

答案 1 :(得分:0)

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

将获得id为theId

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

将获取id为theId

的.someClass实例

答案 2 :(得分:0)

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

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

可以成为

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

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

答案 3 :(得分:0)

我认为你的问题中存在一些误用的术语。学习它们可能会帮助您修复代码。

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

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

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

相关问题