attr()的JQuery问题

时间:2009-09-24 10:36:56

标签: javascript jquery

以下是一小段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吗?我不明白。这很重要的原因是因为我需要现在注释的下三/四行代码的id。

编辑:

现在,我使用的是有效ID,但警报仍为空:

<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 个答案:

答案 0 :(得分:4)

您的ID无效 - 不允许以数字开头。 根据{{​​3}}:

  

ID和NAME令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9]),连字符(“ - ”),下划线(“ _“),冒号(”:“)和句号(”。“)。