javascript
  • jquery
  • 2009-09-24 81 views 0 likes 
    0

    這裏是HTML的一個小片段(包含所有相關的HTML和JavaScript代碼):JQuery的問題使用attr()

    <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); 
    

    我得到的是一個空白彈出窗口。不應該等於4?我不明白。之所以這麼重要,是因爲我現在需要用到接下來的三/四行代碼。

    編輯:

    現在,我使用的有效身份證件,但警報仍然空:

    <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; ?> 
    
    +0

    而不是「#53」使用「#a53」 – balexandre 2009-09-24 10:43:07

    +0

    爲什麼?我不明白。 – 2009-09-24 15:33:42

    回答

    4

    你的ID是無效的 - 他們不準下手的數字。 按照HTML 4 spec

    ID和名稱標記必須以字母開頭([A-ZA-Z])和之後可以是任何數量的字母,數字([0-9]),連字符(「 - 」),下劃線(「_」),冒號(「:」)和句點(「。」)。

    +0

    謝謝,我編輯了ID,它們現在有效但仍然有效,警報爲空。我已經發布了上面的更新代碼。 – 2009-09-24 15:32:02

    +0

    兩個警報實際上都是空的,我不明白這一點。 – 2009-09-24 15:32:58

    +0

    另外,錨和輸入具有相同的ID。 – Powerlord 2009-09-24 15:39:04

    相關問題