在javascript中选择部分ID名称
Select partial ID name in javascript
我有一个asp.net webform,我包括以下脚本(在一个单独的。js文件):
function pageLoad() {
var mpe = $find("mpeEmpresa");
mpe.add_shown(onShown);
$addHandler(document, "keydown", onKeyDown);
}
function onShown() {
var background = $find("mpeEmpresa")._backgroundElement;
background.onclick = function() {
$find("mpeEmpresa").hide();
}
}
不幸的是,它不能工作,因为asp.net 3.5改变了元素的id。我能让它工作的唯一方法是使用ctl00_ContentPlaceHolder1_empresaFilha_mpeEmpresa
作为ID。
当然我可以使用<%= mpeEmpresa.ClientID %>
从asp.net方面,它会工作,但我将不得不传递它作为一个变量到我的外部。js文件,这不是我想要完成的。
我已经搜索了几种方法来选择它的ID名称部分元素,但无法得到他们中的任何一个工作…有保证的方法吗?
我可以在你的问题上看到JQuery标签,所以你可以很容易地使用这个:
$('div[id*="mpeEmpresa"]')
据我所知,ContentPlaceHolders
被渲染为div
。
更新:
如果你需要选择empresaFilha
,所以你不能使用上面的选择器。
因为$('div[id*="mpeEmpresa"]')
同时选择了ctl00_ContentPlaceHolder1_empresaFilha
和ctl00_ContentPlaceHolder1_empresaFilha_mpeEmpresa
。
所以你需要使用这个:
只选择mpeEmpresa
:
$('div[id*="mpeEmpresa"]').css("background-color","blue");
只选择empresaFilha
:
$('div[id*="mpeEmpresa"]').parent('div[id*="empresaFilha"]').css("background-color","red");
或者类似的东西,也许这个代码不是那么优化,因为我没有看到你的ASP代码或渲染HTML,所以必须提供一个通用的解决方案
你可以直接使用
var mpe=$('div[id$="mpeEmpresa"]');
或
var mpe=$find('div[id$="mpeEmpresa"]');
相关文章:
- document.getElementById并使用id名称
- 如何使用jQuery迭代id名称的变体(如idname1、idname2)
- FireFox-在全局作用域中由id名称引用的元素.使用w3c标准
- 如何在select标记上使用javascript获取id名称
- 如何获取 ID 名称的子字符串
- jQuery 按 ID 名称删除 img 标签不起作用
- 将 URL 的最后一个字符串与 Li 的 ID 名称进行比较
- 按 id 名称检查元素是否具有子节点
- 如何检索元素的 ID 名称
- 如何在按键事件中使用 ID 名称
- 使用带有部分ID名称的document.getElementById
- 如何根据特定链接的id/名称选择并自动点击该链接
- 如何使用jquery将数字添加到输入ID名称中
- 如何根据onchange事件的序列ID名称获取值
- 检索一个值,而不对id名称进行硬编码
- JQuery-具有windows文件名的Html ID名称正在静默地删除斜杠
- 在javascript中切换id名称
- 在javascript中选择部分ID名称
- 检测,自动将输入Id更改为当前Id名称
- 如何获得几个td具有相同的id名称的文本