基于多个变量(特定字符串)的JQuery选择

基于多个变量(特定字符串)的JQuery选择,jquery,if-statement,Jquery,If Statement,我想创建一对if语句,使用contains*=和img=。我可能做错了什么 if($("div[id*='Point_'], [img='gray.png']").length > 0 ) { // do something gray } if($("div[id*='Point_'], [img='red.png']").length > 0 ) { // do something red } 如果试图选择特定字符串,则需要从字符串中删除逗号。用逗号分隔选择器可基于任何选择

我想创建一对if语句,使用contains*=和img=。我可能做错了什么

if($("div[id*='Point_'], [img='gray.png']").length > 0 ) {

// do something gray
}

if($("div[id*='Point_'], [img='red.png']").length > 0 ) {

// do something red
}

如果试图选择特定字符串,则需要从字符串中删除逗号。用逗号分隔选择器可基于任何选择器选择多个元素。没有逗号选择所有选择器上的匹配项。请参阅。

如果您试图选择需要从字符串中删除逗号的特定字符串。用逗号分隔选择器可基于任何选择器选择多个元素。没有逗号选择所有选择器上的匹配项。请参阅。

您正在尝试像属性选择器一样使用标记选择器。如果要匹配属性equals gray.png,则正确的选择器为$'img[src=gray.png]'

此外,这可能正确,也可能不正确,但jQuery选择器中的逗号的作用类似于or,因此您的意思是,在id属性包含文本“Point_u”或 但是,似乎更可能的是,您要做的是选择一个ID包含“Point_”的中的equal to gray.png,因此选择器应为:

$('div[id*="Point_"] img[src="gray.png"]')

您正在尝试像属性选择器一样使用标记选择器。如果要匹配属性equals gray.png,则正确的选择器为$'img[src=gray.png]'

此外,这可能正确,也可能不正确,但jQuery选择器中的逗号的作用类似于or,因此您的意思是,在id属性包含文本“Point_u”或 但是,似乎更可能的是,您要做的是选择一个ID包含“Point_”的中的equal to gray.png,因此选择器应为:

$('div[id*="Point_"] img[src="gray.png"]')

你试过把引号和双引号调换一下吗?我不确定这是否重要,但是jquery页面的属性值周围都有双引号。@jbabey这不重要,只要你是一致的。如果整个选择器包含在双引号中,则根据要匹配的属性值使用单引号或无引号。如果整个选择器包含在单引号中,请使用双引号。就我个人而言,我更喜欢将Javascript字符串包含在单引号中,因为如果需要,可以更轻松地将HTML复制到字符串中,例如动态创建和附加DOM节点。@AnthonyGrist我也喜欢单引号,谢谢您提供的信息@没问题。当然,我忘了提到,如果你真的想这样做,你可以对字符串使用单引号或双引号,对属性值使用转义单引号或双引号\'或\,但我想不出你想这样做的任何原因。你试过切换引号和双引号吗?我不确定这是否重要,但是jquery页面的属性值周围都有双引号。@jbabey这不重要,只要你是一致的。如果整个选择器包含在双引号中,则根据要匹配的属性值使用单引号或无引号。如果整个选择器包含在单引号中,请使用双引号。就我个人而言,我更喜欢将Javascript字符串包含在单引号中,因为如果需要,可以更轻松地将HTML复制到字符串中,例如动态创建和附加DOM节点。@AnthonyGrist我也喜欢单引号,谢谢您提供的信息@没问题。当然,我忘了提到,如果你真的想,你可以对字符串使用单引号或双引号,对属性值使用转义单引号或双引号\'或\但我想不出你为什么要这样做。