2012-10-31 57 views
0

我有一個文本輸入字段,旁邊有一個按鈕。當我點擊這個按鈕時,我需要alert()來顯示輸入字段的ID。這是我的代碼jQuery:獲取最近文本輸入的ID

<tr> 
    <td>Item <?php echo $i; ?>:</td> 
    <td> 
     <input type="text" name="course_include_1" class="regular-text" /> <input type="button" class="button" id="DeleteItem" value="Delete Item" /> 
    </td> 
</tr> 

這是我的jQuery代碼:

$("#DeleteItem").live("click", function() { 
     //$(this).parents("tr").remove(); 
     alert($(this).prev().attr("id")); 
    }); 

這是爲什麼不工作?

編輯:我應該補充說,還有一個「添加」按鈕,它會在旁邊的刪除按鈕上創建一個新的輸入字段。造成這種情況的代碼如下所示:

$("#AddItem").live("click", function() { 
      Count++; 
      $('<tr><td>Item ' + Count + ':</td><td><input id="asdadad" name="course_include_' + Count + '" type="text" class="regular-text" /> <input type="button" class="button" id="DeleteItem" value="Delete Item" /></td></tr>').appendTo(TableRow); 
     }); 

的目標是點擊刪除按鈕旁邊新建的領域,並顯示其ID在警告()框。這不起作用。

+0

沒有添加用於輸入的ID –

回答

1

問:爲什麼這不起作用? 答:輸入沒有ID屬性

編輯

現在你有一個id="DeleteItem"很多元素這很可能導致「意外」瀏覽器的行爲(例如搞亂了綁定)。使用一個類代替,在該行改變這個當你追加新項目:

class="button" id="DeleteItem" 

這樣:

class="button DeleteItem" 

...在事件綁定改變這一點:

$("#DeleteItem").live("click", function() { 

這樣:

$(".DeleteItem").live("click", function() { 

甚至這(建議使用.on()代替.live(),看first text paragraph here):

$(document).on('click','.DeleteItem', function() { 

可能會解決的事情

編輯2

PS。我也會爲每個輸入元素製作一個獨特的id,例如。... id="asdadad"'+Count+' ...或將其移動到類,如果他們都應該是爲每個項目增加

+0

我已經指定了我的問題,請參閱我原來的帖子。 – kolja

+0

查看編輯答案.. – st3inn

0

試試這個:

$("#DeleteItem").live("click", function() { 
    alert($(this).parent().find(".regular-text").attr("id")); 
}); 

更新

的問題是,因爲要附加一個重複id屬性的元素。將#DeleteItem更改爲使用類。

+0

已經測試過。我總是在框中收到「未定義」的消息。 – kolja

+0

那麼你需要在'input'元素上設置'id'屬性。我以爲你只是忘了把這個添加到你的例子中。 –

1

由於輸入沒有設置id屬性,例如

<input id='myInput' type="text" name="course_include_1" class="regular-text" /> 
+0

你是對的,但整個代碼是這樣的:有一個輸入字段旁邊有一個刪除按鈕。在底部有一個按鈕,它與刪除按鈕一起創建另一個輸入欄。這看起來像這樣: – kolja

0

它不回答你的問題,但它會刪除該行,如果你做了這一切放在同...

<input type='button' value='delete' onclick="$(this).parents('tr').remove();" /> 

父母(對父母)會做'找到',但向上,直到它找到持有該行的<tr> ...然後刪除將'刪除'它。 PS:如果你有多個拖拽,多個刪除按鈕,他們需要UNIQUE ID或JQ有時會感到困惑。