I'm trying to bind to the `change` event of what is rendered as a `span` by ASP.NET from an `asp:Label`. Obviously the container prefixes these controls with something such as `ctl00_`, but I don't want to have my script dependent on identifiers that aren't necessarily known.

The `span` is updated via the `AjaxControlToolkit` `PasswordStrength` control which uses the ID the an ASP.NET label to display its help messages base on an input control it is validating.

On looking into it a bit, it seems what I want is possible as the control has its own `div` container - I found resources [here](https://stackoverflow.com/questions/1766652/jquery-selecting-the-first-child-with-a-specific-attribute), [here](http://api.jquery.com/first-child-selector/) and [here](http://api.jquery.com/first-selector/) that indicate I can essentially look-up the child with a selector, the SO answer looked absolutely promising so I came up with the following which alters only slightly:

```
<div id="PasswordHelpContainer" class="passwordFailureNotification">
    <asp:Label runat="server" ID="PasswordHelpLabel"/>
</div>

$(document).ready(function () {
    $('#PasswordHelpContainer').children('span:first').change(function () {
        //
    });
});

```

Unfortunately there was no success in my efforts; the event just doesn't fire.

**What am I doing wrong here?**
**And am I mixing `Javascript` and `jQuery` together?**

I know the second question might sound paradoxical to some but I'll freely elaborate if needs be.