2015-01-08 73 views
-3

我希望能夠在單擊按鈕後獲取id的值,以便我可以使用它來引用特定的表。我如何使用jQuery獲取ID

<input type="button" id="<?php echo $id; ?>" onclick="delBtn(<?php echo $id; ?>)"> 
<script>  
    function delBtn(btnX){ 

     var itemId = btnX; 
     alert(itemId); 
     var x; 
     var y =confirm('Are you sure you want to delete this item ?'); 

     if(y == true){ 
      x = 'You pressed Ok'; 
      console.log(x); 
      `$`("button[id='"+itemId+"']").closest("tr").effect("highlight", { 
      color:'#4BADF5'}, 400); 
      $("button[id='"+itemId+"']").closest("tr").fadeout();` 
     } 
    } 
</script> 
+1

'onclick =「delBtn('<?php echo $ id;?>')」'???但描述你的問題。控制檯錯誤?爲什麼你需要在這裏通過ID,我仍然沒有得到它? –

+0

僅供參考,ID ***必須在文檔上下文中是唯一的,聽起來像您正在使用重複ID,具有相同ID的多個按鈕。無論如何,所有這個問題沒有多大意義 –

+0

@ A.Wolff我有一個數據庫中的項目表,我想要使用jquery動態刪除一行,但我必須唯一標識每一行,所以我添加了一個點擊函數捕獲行ID的按鈕,然後我將使用行ID來刪除行。 – cyrusolu

回答

0

這將適用於頁面上的所有按鈕。它會得到被點擊的按鈕,並返回按鈕的ID屬性值。所以你可以有5個按鈕與所有不同的ID,當他們中的一個被點擊時,它將返回被點擊的按鈕的ID。

$('button').click(function(){ 
    alert($(this).attr('id')); 
}); 

WORKING FIDDLE

+0

您能否編輯您的問題並解釋解決方案? – Magnilex

+0

@Magnilex現在好了嗎? – Refilon

0

如果按鈕是動態添加使用事件委派:

$(document).on('click', '#your_id', function() { 
    var id = $(this).attr('id'); 
    return id; 
}); 
+0

返回值在哪裏? – Teemu

0

試試這個

$(document).ready(function(){ 
$('button').click(function(){ 
    var id = $(this).attr('id'); 
    alert(id); 
}); 
}); 
+0

不能從點擊的處理器返回值 –

1

爲什麼不使用 「ATTR」 獲得ID

$('button').click(function(){ 
alert(this.id); // you can also use $(this).attr("id"); 
}); 
0

使用ID:

function delBtn(btnX){ //btnX is not id, it's parameter only 
var itemId = btnX.id; //so you need to use id 
alert(itemId); 
..... 

但是把這個中的onclick HTML:

onclick="delBtn(this)" 
+0

您不關閉功能... – Refilon

+0

將....在代碼示例通常意味着「更多的代碼在這裏/在此處添加代碼」等而不是忘記關閉功能 – atmd

+0

@ Bhoejendra Sah感謝您的評論,但我將如何使用jquery引用id來做這樣的事情$(「我將在這裏使用什麼來引用ID」).closest(「tr」)。效果(「高光」,顏色:'#4BADF5'},400); – cyrusolu

0

試試這個..

<input type="button" id="<?php echo $id; ?>" class="yourclass"> 

    $(".yourclass").click(function(){ 
    var id=$(".yourclass").attr("id"); 
    alert(id); 
    }); 
0

如果需要,您可以存儲該ID,以便在範圍內訪問。

<input type="button" class="js-item-id" id="<?php echo $id; ?>" value="Remove"> 

<script> 
    var itemId; 

    function delBtn() { 

     var x; 
     var y = confirm('Are you sure you want to delete this item ?'); 

     // If y is true... 
     if(y) { 

      x = 'You pressed Ok'; 
      console.log(x); 
      $("button[id='"+itemId+"']").closest("tr").effect("highlight", { 
      color:'#4BADF5'}, 400); 
      $("button[id='"+itemId+"']").closest("tr").fadeout(); 

      // Show me the ID! 
      alert('You deleted item ID #' + itemId + '.'); 
     } 
    } 

    $('.js-item-id').on('click', function() { 

     // Return and store 'this' ID. e.g, if the buttons id was '1234', 
     // it would return '1234'. 
     itemId = $(this).attr('id'); 

     // Now, call the @delBtn() function. 
     delBtn(); 
    }); 
</script> 

另外,我不知道你的意思是複製你的代碼時,要做到這一點,但你有一個錯字:

$("button[id='"+itemId+"']").closest("tr").fadeout();` 

你有一個結尾逗號。它應該是:

$("button[id='"+itemId+"']").closest("tr").fadeout();