我可以通过jQuery中ID的最后一部分访问控件吗?

时间:2015-06-02 21:09:52

标签: jquery dynamic sharepoint-2010

我有一个动态创建的控件,我给了ID" ckbxEmp"

正如我发现"查看来源," Sharepoint(或Chrome,或者#34;某人")非常狡猾地重新定义(并命名它,以及#34;对于它来说)这个控件,给它威尔士式的#34 ; ctl00_ctl24_g_1caf4ad1_092d_4224_bd10_28ab028aab50_ctl00_ckbxEmp"

所以(我认为这就是原因),所有试图操纵" ckbxEmp"通过jQuery失败 - 也就是说,当我寻找我给它的短ID时,就像这样:

$(document).on("change", '#ckbxEmp', function () {
    console.log('Function has been reached');
    if ($(this).is(":checked")) { 
        alert("Checked");
    } else {
        alert("Not checked");
    }
}); 

所以我可以将代码更改为:

$(document).on("change", '#ctl00_ctl24_g_1caf4ad1_092d_4224_bd10_28ab028aab50_ctl00_ckbxEmp', function () {
    console.log('Function has been reached');
    if ($(this).is(":checked")) { 
        alert("Checked");
    } else {
        alert("Not checked");
    }
}); 

...作为一次性的东西可以,但是我有许多动态创建的控件,我想要操作,我认为它们都会被威化,这会有点痛苦

-OR,希望有一种方法可以查找不完全匹配的ID匹配,但"以"结尾。那可能吗?如果是这样,那是什么语法?

注意:这是this question的后续内容。

更新

非常奇怪(这开始变得非常恼人),这也不起作用:

$(document).on("change", '#ctl00_ctl24_g_1caf4ad1_092d_4224_bd10_28ab028aab50_ctl00_ckbxEmp', function () {
    console.log('Function has been reached');
    if ($(this).is(":checked")) {
        alert("Checked");
    } else {
        alert("Not checked");
    }
}); 

更新2

Robert McKee的回答,以及这是一个后续问题的答案,已经形成了一个有效的解决方案:

$(document).on("change", '[id$=ckbxEmp]', function () {
    alert('Function has been reached');
    if ($(this).is(":checked")) {
        alert("Checked");
    } else {
        alert("Not checked");
    }
}); 

" 就是这个。这不是别的。就是这样。" - 鹿猎人

2 个答案:

答案 0 :(得分:1)

string[] lines = System.IO.File.ReadAllLines(@"F:\Designe- Video\projects\Phpgonehelp\Phpgonehelp\PHPCODE\Php1.txt");

答案 1 :(得分:1)

使用Jquery选择器

获取以" ckbxEmp"开头的所有元素你应该使用:

$(document).on("change", "[id^='ckbxEmp']", function () {

以" ckbxEmp"

结束
$(document).on("change", "[id$='ckbxEmp']", function () {