如何动态给出jquery id?

时间:2013-11-27 06:04:10

标签: javascript jquery jquery-selectors

使用ajax和jquery动态创建的jsp中table1(#tbl1)中的复选框,其id为:id =“123”(firstId)

$.each(json, function(idx, obj) {

$("#tbl1").append('<input type="checkbox" id='+obj.firstId+' onclick=nextPopulate('+obj.firstId+'); >'); }

在table2(#tbl2)中,复选框是在检查tbl1中的复选框时创建的,其id将为:

id =“123-001”(firstId-secondId)

$.each(json, function(idx, obj) {

$("#tbl2").append('<input type="checkbox" id="'+firstId+'-'+secondId+'" >'); }

在我的javascript中,如果未选中tbl1中的复选框,我正在使用ajax调用删除tbl2中的复选框。

第二组复选框的ID如下:“123-001”,“123-002”,“123-003”,“456-001”

因此,要删除id为以firstId(123)开头的tbl2的所有复选框,如果在tbl1中取消选中ID为123的复选框。

我该怎么做?

我可以使用.empty()。但是如何将id指定为'以firstId'开头(123)

我正在尝试:

if(!($('#'+firstId).is(':checked'))){

    $('#'+firstId'-').empty();

4 个答案:

答案 0 :(得分:0)

很简单。使用attr选择器:

$('[id^=123]')

答案 1 :(得分:0)

您可以使用Attribute Starts With Selector [name^="value"]

$('[id^=123-]:not(:checked)').empty();

或者,您可以使用删除

$('[id^=123-]:not(:checked)').remove();

您也可以尝试拨打.not(':checked');

$('[id^=123-]').not(':checked').remove();

描述:选择具有指定属性的元素,其值始于给定字符串。

答案 2 :(得分:0)

您可以使用^

if(!($('[$id^="firstId"]').is(':checked'))){

    $(this).empty();

答案 3 :(得分:0)

$("[id^=check"+webId+"]").fn();

这里,check是一个我们硬编码的字符串,动态地采用了webClassId。

因此,例如:将考虑以check101开头的id。