2016-04-20 15 views
0

我通过TR试图循环:图,发现如果TR具有类,但我得到这个错误:如何迭代TR> IMG

Error: Syntax error, unrecognized expression:

HTML:

<tr id="ItemDetail:0:parent"> 
    <td> 
     <a id="itemDetail:0:linkShowHide" 
      name="itemDetail:0:linkShowHide" 
       href="javascript:toggleRow('itemDetail:0')"> 
      <img class="showDetail" id="itemDetail:0:Img" src="/s.gif"></a> 
    </td> 
    </tr> 

jQuery的:

$("[id*='parent']':Img'").each(function(){ 
    var x = $(this); 
    if(x.hasClass("showDetail")) 
    { 
     alert('gotit'); 
    } 
}) 
+0

小写IMG .. – JordanHendrix

+0

为什么不在乎下来投给解释一下吗? –

+0

@JordanHendrix:是的,我曾尝试用小写,仍然得到错误'错误:语法错误,无法识别的表达式:' –

回答

3

Error: Syntax error, unrecognized expression:

你得到这个,因为选择是无效..

更改这个选择语法

$("[id*='parent']':Img'")

$("[id*='parent'] img")

注意id选择和img之间的空间..空间选择之间用于指定父子关系(任何级别深)。

上面的选择器意味着...找到img元素,该元素位于parenrt元素的任何级别,其中id包含父级元素。

由于马特·布朗谁在下面的评论中指出这一点。

此外,如果您的意图是只有img标记showDetail然后将其添加到选择器中。你也可以消除。如果检查里面..

$("[id*='parent'] img.showDetail")

这会给你只有img标签具有指定类..

希望这有助于。

+0

@NickKahn,你也可以将其更改为'$( “[ID * = '父'] img.showDetail”)',而不是如果使用声明和'hasClass()'。 –

+0

我想到这一点,但那么它也把我的想法,他可能会使用其他为好。但不是在这里显示...反正我会把这一点在回答以及 –