Проблема JQuery с attr()

Вот короткий фрагмент HTML (он содержит все соответствующие HTML и javascript-коды):

<script type="text/javascript">
    //<![CDATA[
$(document).ready(function() {
    $('.remove-temporary-photo').click(function() {
        var url = '/my-account/remove-media/id/' + $(this).attr('id');
        $.get(url, function(data) {
            //
        });
        var id;
        id = $('ul.inl').attr('id');
        alert(id);
        //$.get('/my-account/temporary-album-photos/id/' + id, function(data) {
        //    $('#temporaryPhotos').html(data);
        //});
    });
});    //]]>
</script>
<ul class="inl" id="4">
    <li>
        <a href="#53" class="img"><img src="/uploads/photos-thumbs/53.jpg" alt="Public Photo #53" /></a>
        <p class="options">
            <input type="text" name="title53" id="53" value="Title..." class="title" style="width: 81px; margin-top: 5px; border: 0;" />
            <a href="#53" class="blue remove-temporary-photo" id="53">remove</a>
        </p>
    </li>

</ul>
<div class="clear">&nbsp;</div>

Обратите внимание на эту строку:

alert(id);

Я получаю пустое всплывающее окно. Не должен ли id быть равным 4? Я этого не понимаю. Причина этого в том, что мне нужен идентификатор для следующих трех/четырех строк кода, которые теперь прокомментированы.

EDIT:

Теперь я использую допустимые идентификаторы, но оповещения по-прежнему пусты:

<script type="text/javascript">
    //<![CDATA[
$(document).ready(function() {
    $('.remove-temporary-photo').click(function() {
        var id = $(this).attr('id');
        id = id.substr(2);
        alert(id);
        //var url = '/my-account/remove-media/id/' + id;
        //$.get(url, function(data) {
            //
        //});
        id = $('.inl:first').attr('id');
        id = id.substr(2);
        alert(id);
        //$.get('/my-account/temporary-album-photos/id/' + id, function(data) {
        //    $('#temporaryPhotos').html(data);
        //});
    });
});    //]]>
</script>
<?php if (count($this->photos) > 0): ?>
<ul class="inl" id="id<?php echo $this->escape($this->a->id); ?>">
<?php foreach ($this->photos as $p): ?>
    <li>
        <a href="#id<?php echo $this->escape($p->id); ?>" class="img"><img src="/<?php echo $this->escape($p->thumb_path); ?>" alt="<?php echo $this->escape($p->title); ?>" /></a>
        <p class="options">
            <input type="text" name="title<?php echo $this->escape($p->id); ?>" id="id<?php echo $this->escape($p->id); ?>" value="Title..." class="title" style="width: 81px; margin-top: 5px; border: 0;" />
            <a href="#id<?php echo $this->escape($p->id); ?>" class="blue remove-temporary-photo" id="<?php echo $this->escape($p->id); ?>">remove</a>
        </p>
    </li>
<?php endforeach; ?>
</ul>
<div class="clear">&nbsp;</div>
<?php endif; ?>

Ответы

Ответ 1

Ваши идентификаторы недействительны - им не разрешено начинать с цифр. Согласно HTML 4 spec:

Идентификаторы ID и NAME должны начинаться с буквы ([A-Za-z]), за которой может следовать любое количество букв, цифр ([0-9]), дефис ( "-" ), подчеркивание ( "_" ), двоеточие ( ":" ) и периоды ( "." ).