我无法弄清楚为什么我无法获得这样的html元素:
<input name="ctl00$body$frmViewODL$ListViewParametri$ctrl0$txtParametroValoreNum" type="text" value="1" id="body_frmViewODL_ListViewParametri_txtParametroValoreNum_10 " class="boxNum" style="width: 60px">
使用这个jQuery:
$('#body_frmViewODL_ListViewParametri_txtParametroValoreMax_10 ')
我尝试在末尾删除/添加空格: - )
PS:如果我尝试
document.getElementById('body_frmViewODL_ListViewParametri_txtParametroValoreMax_10 ')
没关系。
修改
完整的代码有点复杂......
我有一个ListView,我使用ClientIDRowSuffix让asp.net将Record键附加到控件的id。我想在一篇文章中更新一个值数组(记录)。
所以在html中我有一个TextBox数组,如下所示:
<input name="ctl00$body$frmViewODL$ListViewParametri$ctrl0$txtParametroValoreNum" type="text" value="1" id="body_frmViewODL_ListViewParametri_txtParametroValoreNum_10 " class="boxNum" style="width: 60px">
<input name="ctl00$body$frmViewODL$ListViewParametri$ctrl1$txtParametroValoreNum" type="text" value="2" id="body_frmViewODL_ListViewParametri_txtParametroValoreNum_11 " class="boxNum" style="width: 60px">
<input name="ctl00$body$frmViewODL$ListViewParametri$ctrl7$txtParametroValoreNum" type="text" value="8" id="body_frmViewODL_ListViewParametri_txtParametroValoreNum_23 " class="boxNum" style="width: 60px">
...
答案 0 :(得分:2)
实际上问题可能是jQuery使用尾随空格解析选择器。由于通常空格分隔选择器的不同部分,因此jQuery可能不会将此尾随空格视为与#
部分相关的内容。为了确保它理解空间是ID的一部分,您可能需要使用属性选择器:
$("[id='body_frmViewODL_ListViewParametri_txtParametroValoreNum_10 ']")
答案 1 :(得分:1)
更好的方法是让aspx页面解析器编写所需的内容并应用属性选择器。(感谢@James Montagne对某个问题的评论)
$("[id='<%= txtParametroValoreNum.ClientID %>']")