0

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". 如您所见, divid="result"就像一个包含所有附加文本的容器。

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

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"))));
    });
});
4

3 回答 3

2

要获取#result元素中按钮的数据 ID,您可以这样做:

$('#submit').click(function(){
    $('#result button').each(function(i){
         console.log(i, ':', $(this).data('id'));
    });
});
于 2013-10-18T06:44:06.867 回答
1

尝试这个

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

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

于 2013-10-18T06:43:42.763 回答
0

如果用户#btn多次单击“单击此处”按钮,您最终会在其中附加多个新按钮#result(这将是无效的 html,因为您将有重复的id值),因此您需要遍历这些按钮with.each()而不是试图通过#resultwith循环.each()

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

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

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

于 2013-10-18T06:46:22.947 回答