如何知道选择哪一行单选按钮id?

我做了一个演示,其中我使用ids tc_1tc_2tc_3 ……等来创建行。

当我扩展一行时,我有两个选项和一个按钮。 我需要知道哪个行ID和哪个选项被选中?

示例:我展开第二行,它应该通过选项选择添加测试用例来警告tc_1

 $('#list').on('click','.addClickClass',function(){ alert('hii') }); 

要获取行ID和已检查无线电的值,请使用以下命令:

 $('#list').on('click','.addClickClass',function(){ alert($(this).parents('li[id*="tc"]').attr('id') + "\n" + $(this).parents('.ui-collapsible').find('input:checked').val()) }) 

它为您提供这样的输出,例如:

 tc_1 TestCommand 

我相信这正是你要找的。

我用它来获取行id:

 $(this).parents('li[id*="tc"]').attr('id') 

这是为了得到被检查的无线电值:

 $(this).parents('.ui-collapsible').find('input:checked').val() 

两者都与单击的“添加”按钮相关。

在这里看到它: http : //jsfiddle.net/R2DzV/16/

这是一些新的jquery代码,用于获取所选元素的id的alert

  alert('hi from ' + $(e.target).closest('[datarole="collapsible"]').find('input:checked').attr('id') ) 

这是一个分叉的jsfiddle显示这个工作变化: http : //jsfiddle.net/mstapp/mGSJ7/1/

在像jQuery这样的情况下会为你提供有问题的元素对象$(this)

 $('#list').on('click','.addClickClass',function(){ // This is current button clicked console.log($(this)); }); 

如果您想从按钮获取某些特定项目,您可以选择整个文档。 但是例如,为了让你想找到包装所有情况的li

 $('#list').on('click','.addClickClass',function(){ // Get the first ancestor that matches a selector $(this).closest('li'); }); 

遍历和操纵Traversing – Manipulating有很多很棒的材料

你应该试试这个:

 $('#list').on('click','.addClickClass',function(){ alert($(this).closest('div').parent().parent().prop('id')); }); 

那你可以试试这个:

 $('#list').on('click', '.addClickClass', function () { var row = $(this).parents('li').eq(1); // top second parent var selected = row.find('label[data-icon="radio-on"] .ui-btn-text').text(); alert(row.attr('id') + "\n" + selected); }); 

但是你需要小心,如果有更多

  • 元素,你需要指定哪一个要定位。

    演示

    后:

      $('#list').trigger('create'); 

    添加无线电更改事件处理程序:

      var $appendedLi = $("#list>li:last-child"); $appendedLi.find ("input[type='radio']").on ("change", function () { if ($(this).prop("checked")) { alert("Current row: " + $(this).closest("#list>li").attr("id")); alert("Selected option: " + $(this).val()); } });