如何在附加按钮中获取data-id?

时间:2013-10-18 06:39:36

标签: javascript jquery html

的JavaScript

$("#btn").on('click', function(){
    $("#result").append("<button type='button' id='btnid'
    data-id='show' //this is what I want to get
    class='close pull-right' aria-hidden='true'>some text here</button>");
});

HTML

<button id="btn">CLICK HERE</button>
<div id='result'></div>
<button id="submit">SUBMIT HERE</button>

点击带有data-id='show'的按钮后,我想在附加按钮中显示id="submit"。如您所见,带有id="result"的div就像所有附加文本的容器一样。

到目前为止,这就是我所拥有的,

的JavaScript

$('#submit').click(function(){
    $( "#result" ).each(function( index ) {
        console.log( index + ": " +$(this).text());
    });
});

但是使用这段代码,我只能检索文本,“这里有些文字”。但我需要的是我附加按钮的数据ID。

我也试过下面的代码,但它无效。

的JavaScript

$('#submit').click(function(){
    $( "#result" ).each(function( index ) {
        console.log( index + ": " + $( this ).html($(this).html($(this).attr("data-id"))));
    });
});

3 个答案:

答案 0 :(得分:2)

要获取#result元素中的按钮的数据ID,您可以执行以下操作:

$('#submit').click(function(){
    $('#result button').each(function(i){
         console.log(i, ':', $(this).data('id'));
    });
});

答案 1 :(得分:1)

试试这个

$('#submit').click(function(){
  console.log($("#result").find("button").data('id'));
});

确保你的id是唯一的......每个id都没有意义

答案 2 :(得分:0)

如果用户多次点击#btn“点击此处”按钮,您最终会在#result中附加多个新按钮(如果您有重复内容,这将是无效的html id值,因此您需要使用.each()循环显示这些按钮,而不是尝试使用#result循环遍历.each()

$('#submit').click(function(){
    $("#result").find("button").each(function(index ) {
      console.log( index + ": " + $(this).attr("data-id"));
    });
});

演示:http://jsfiddle.net/NXU9e/

注意:#result元素的标记缺少结束/标记中的</div>