2017-08-09 101 views
-3

我的问题是在使用javascript变量之前询问的,因为在下面的这篇文章中使用了jQuery选择器Single在多个jQuery选择器中使用JavaScript变量

How to use javascript variables in jquery selectors

但我的问题是如何用一个变量有两个或更多的选择?

var itemId = $(this).closest('li').attr('id'); 

这是一个选择

var contentType = $('#' + itemId + ' .content-type'); 

但如何使用itemId当我有两个选择一排像下面

var contentType = $('.content-type1, .content-type2'); 
+2

尝试:'VAR的contentType = $( '#' +的itemId +'.content- type1','#'+ itemId +'.content-type2');' – tech2017

+0

这是行不通的,因为','必须在第一个选择器 –

+0

里面。我无法编辑。但你有想法 – tech2017

回答

1

您可以通过在2个选择器之间添加,来达到同样的效果。

作为,你正在做的:

var contentType = $('#' + itemId + ' .content-type'); 

为2元,您可以使用,

var contentType = $('#' + itemId + ' .content-type1, #' + itemId + ' .content-type2'); 
+0

我从我的编辑器得到一个语法错误,不应该是te字符串中的? – Doomenik

+0

是的,你是对的。我更新了我的代码。 –

+0

谢谢你的工作 –

0

可以手动Concat的,因为你需要尽可能多但也许你可以做一个选择器准备下面的方式,所以你可以轻松地追加变量的n倍:

var itemId = $(this).closest('li').attr('id'); 
var selector = '#{i}.content-type1, #{i}.content-type2, #{i}.content-type3'; // you can extend this as much as you like or even add a loop to construct content types 
var finalSelector = selector.split('{i}').join(itemId); // doing the replace 
var contentType = $(finalSelector); 

其中{i}只是一个虚构的占位符字符串。我认为这样更具可读性。反正你的问题是有点怪,当涉及到

“或以上的选择”

部分逻辑。也许你需要改变你的代码流/实现技术,无论你想实现什么。