我正在使用jQuery编写一个相当基本的脚本。但是,脚本的行为有所不同,具体取决于我是在本地Web服务器(本地主机)上还是在生产服务器上运行它。在开发上有效的jQuery开发失败
在发展,下面的代码返回的HTML我期待:
$('#objID').siblings('.mAddress').html();
生产,同样的语句返回undefined
。
两台机器上的文档结构都是一样的。我能找到的唯一区别是当我使用Firebug来浏览脚本时。在开发机器上,将手表放在$('#objID').siblings('。mAddress')上会产生[ span#object ]
,同时产生相同的手表结果[ [ span#object ] ]
(注意双方括号)。
任何想法?
加:
我已验证两个库是相同的。
我已经使用Firebug做了一些更多的实验。脚本的另一部分抓住了一套使用语句元素:
$('.ParentColumn2').each(function(i) { ... })
在该函数的身体,如果我设置的手表上this
,在发展的this
值是我所期望的:div.ParentColumn2
,但生产的this
值返回看起来像一个数组:[ div.ParentColumn2, div.ParentColumn2, div.ParentColumn2, .....]
的HTML基本上是一个表(我已经剥离出不相干的HTML,行重复):
<table>
<tr>
<td>
<div class="ItemTemplate">
<div class="ParentColumn2">
<div><span id="dnn_ctr45874_ViewProjectGrid_GridView1_ctl02_lbl_Address" class="lbl_Address mAddress">111 W Wacker Dr, </span><span id="dnn_ctr45874_ViewProjectGrid_GridView1_ctl02_lbl_City" class="lbl_Address mCity">Chicago</span> <span id="dnn_ctr45874_ViewProjectGrid_GridView1_ctl02_lbl_PostalCode" class="lbl_Address mPostalCode">60601</span> <a href="javascript:MapMe(this);" id="dnn_ctr45874_ViewProjectGrid_GridView1_ctl02_hypMap" class="hypMap">Map</a> <span id="dnn_ctr45874_ViewProjectGrid_GridView1_ctl02_lbl_Area" class="mArea">Loop</span><span id="dnn_ctr45874_ViewProjectGrid_GridView1_ctl02_lt" class="mLt">41.8868010285473</span><span id="dnn_ctr45874_ViewProjectGrid_GridView1_ctl02_lg" class="mLg">-87.6312860701286</span>
</div>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="ItemTemplate">
<div class="ParentColumn2">
<div><span id="dnn_ctr45874_ViewProjectGrid_GridView1_ctl03_lbl_Address" class="lbl_Address mAddress">...</span> ...
</div>
</div>
</div>
</td>
</tr>
</table>
这两台机器之间的HTML尽可能相同,因为它都是由.Net生成的(不要让我开始)。
你能跟我们分享一下你的HTML样本吗? – 2008-10-06 20:04:50
两台机器上的HTML代码是否完全相同?您的生产环境是否通过AJAX注入其他HTML? – Devon 2008-10-06 20:38:27
这是在DNN中托管的东西吗?如果是这样的话,你的开发机器在同一页面上包含与生产机器完全相同的模块? – Maurice 2008-10-08 20:28:18