使用jquery在数组类型id中未定义值

时间:2016-08-10 10:37:41

标签: javascript jquery html

我正在关闭彩色盒后更改图像的src。当img标记的ID与tabImage类似时,它可以正常工作,但当我将ID更改为tabImage[0]时,它就会停止工作。

工作代码如下:

<div class="whBg"><a href="javascript:openIframe('offerImage');">Select Image</a></div>
<form:hidden path="offerImageName" />
<form:hidden path="offerImageRel" />
<form:hidden path="offerImageTitle" />
<form:errors path="offerImage" cssClass="errorInst" />              
<img id="offerImages" src="" style="width: 642px; margin:0px 0 0 220px;" />
<input type="hidden" id="returnImageName" />
<input type="hidden" id="returnImageSrc" />
<input type="hidden" id="returnImageRel" />
<input type="hidden" id="returnImageTitle" />

<script>
  function openIframe(tabName)
  {
    $.colorbox({
      iframe:true, 
      href:"imageListFrame",
      innerWidth:1000, 
      innerHeight:500,
      onClosed: function() { 
        $("#"+tabName+"s").attr("src", $("#returnImageSrc").val());
        $("#"+tabName+"Name").val($("#returnImageName").val());
        $("#"+tabName+"Rel").val($("#returnImageRel").val());
        $("#"+tabName+"Title").val($("#returnImageTitle").val());
      }   
    });    
  }
</script>

当我更改inputimg的ID时,它就会停止工作。

<div class="whBg"><a href="javascript:openIframe('toursImage',0);">Select Image</a></div>
<input type="hidden" id="toursImageName[0]" />
<input type="hidden" id="toursImageRel[0]" />
<input type="hidden" id="toursImageTitle[0]" />
<img id="toursImages[0]" name="toursImages[0]" src="" style="width: 642px; margin:0px 0 0 220px;" />
<input type="hidden" id="returnImageName" />
<input type="hidden" id="returnImageSrc" />
<input type="hidden" id="returnImageRel" />
<input type="hidden" id="returnImageTitle" />

<script>
  function openIframe(tabName,id)
  {
    $.colorbox({
      iframe:true, 
      href:"imageListFrame",
      innerWidth:1000, 
      innerHeight:500,
      onClosed: function() { 
        $("#"+tabName+"s["+id+"]").attr("src", $("#returnImageSrc").val());
        alert($("#"+tabName+"s["+id+"]").attr("src"));
        $("#"+tabName+"Name["+id+"]").val($("#returnImageName").val());
        $("#"+tabName+"Rel["+id+"]").val($("#returnImageRel").val());
        $("#"+tabName+"Title["+id+"]").val($("#returnImageTitle").val());
      }   
    });    
  }
</script> 

我已经仔细检查过returnImageNamereturnImageSrc等正在获得正确的值。我尝试使用jquery访问#toursImages[0]的值,但我警告undefined

3 个答案:

答案 0 :(得分:2)

您必须使用[]

逃离\\ - 括号
$("#"+tabName+"Name\\["+id+"\\]")

来自jQuery Docu:LINK

  

使用任何元字符(例如   !“#$%&amp;'()* +,。/:;&lt; =&gt;?@ [] ^`{|}〜)作为名称的字面部分,必须   用两个反斜杠转义:\\。

答案 1 :(得分:0)

我认为您无法将{ "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": { "name": "Missing Person", "ref":" Ref 5684" }, "geometry": { "type": "Point", "coordinates": [-0.12755, 51.507222] } }, { "type": "Feature", "properties": { "name": "Wanted", "category": "cat1", "ref":" Ref 56124" }, "geometry": { "type": "Point", "coordinates": [-0.12755, 52.507222] } }, { "type": "Feature", "properties": { "name": "Missing 1", "ref":" Ref 1684" }, "geometry": { "type": "Point", "coordinates": [-1.12755, 52.507222] } } ] } src: 'resources/Blue_pointer.png',放入[属性。

  

ID和NAME令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9]),连字符(&#34; - &#34 ;),下划线(&#34; _&#34;),冒号(&#34;:&#34;)和句号(&#34;。&#34;)。

请参阅此答案:https://stackoverflow.com/a/79022/863110

尝试将其替换为下划线(]),例如:

id

答案 2 :(得分:0)

您应该将toursImageName[0]更改为toursImageName0