我想要的是:
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 :(得分: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元素之间的区别。