zadubz
zadubz

Reputation: 1301

how to dynamically assign numbers to several ids?

This seem like long way of doing things, is it possible to dynamically assign numbers to ids?

$(function () {
    $('#Button1').click(function(){
        $('#RegularExpressionValidator1, #RegularExpressionValidator2, #RequiredFieldValidator1, #RequiredFieldValidator2, #RequiredFieldValidator3, #RequiredFieldValidator4, #RequiredFieldValidator5, #RequiredFieldValidator6, #RequiredFieldValidator7, #RequiredFieldValidator8, #RequiredFieldValidator9').css("display", "block");
    });
}); 

These are .NET generated ids which I don't have access to.

Upvotes: 0

Views: 106

Answers (3)

Bojangles
Bojangles

Reputation: 101483

Have a look at the attributes starts with selector. Using it, you can simply do this:

$(function () {
    $('#Button1').click(function(){
        $('[id^="RegularExpressionValidator"], [id^="RequiredFieldValidator"]').css("display", "block");
    });
}); 

This will select all elements with an ID starting with RegularExpressionValidator. You may want to specify the element type, as well as a container to look in to select fewer elements.

You may also want to use $.show() instead of $.css():

$('[id^="RegularExpressionValidator"], [id^="RequiredFieldValidator"]').show();

Upvotes: 1

Panos Bariamis
Panos Bariamis

Reputation: 4653

try

$(function () {
    $('#Button1').click(function(){
        $('[id^="RegularExpressionValidator"], [id^="RequiredFieldValidator"]').css("display", "block");
    });
});

Upvotes: 1

James Allardice
James Allardice

Reputation: 165971

You can use an "attribute starts with" selector:

$("[id^='RegularExpressionValidator']").css("display", "block");

From the jQuery docs:

This selector can be useful for identifying elements in pages produced by server-side frameworks that produce HTML with systematic element IDs. However it will be slower than using a class selector so leverage classes, if you can, to group like elements.

Upvotes: 5

Related Questions