2015-01-08 5 views
-3

Я хочу иметь возможность получить значение id после нажатия кнопки, чтобы я мог использовать его для ссылки на определенную таблицу.Как получить идентификатор с помощью jquery

<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 ('') "' ??? Но опишите свою проблему. Ошибка в консоли? И почему вам нужно передать ID здесь, я все еще не понимаю? –

+0

FYI, IDs *** должны быть уникальными в контексте документа, кажется, что вы используете идентификаторы дубликатов, более одной кнопки с тем же идентификатором. В любом случае, весь этот вопрос не имеет особого смысла. –

+0

@ A.Wolff У меня есть таблица элементов из базы данных, я хочу динамически удалить строку с помощью jquery, но мне нужно однозначно идентифицировать каждую строку, поэтому я добавил функцию щелчка кнопку для захвата идентификатора строки, тогда я буду использовать идентификатор строки, чтобы удалить строку. – cyrusolu

ответ

0

Это будет работать для ВСЕХ кнопок на странице. Он получит кнопку, которая будет нажата, и вернет значение атрибута ID кнопки. Таким образом, вы можете иметь 5 кнопок со всеми разными идентификаторами, и когда один из них будет нажат, он вернет идентификатор нажатой кнопки.

$('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", чтобы получить идентификатор

$('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

put .... в примере кода обычно означает «больше кода здесь/добавьте код здесь» и т. Д., А затем забыв закрыть функцию – atmd

+0

@ Bhoejendra Sah Спасибо за комментарий, но как я могу ссылаться на id, используя jquery, чтобы сделать что-то вроде этого $ («Что я буду использовать здесь для ссылки на 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

Если вы хотите, вы можете сохранить идентификатор, упрощающий доступ в область действия.

<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(); 
Смежные вопросы