Jquery 如何获取数据id并将其传递给函数?

Jquery 如何获取数据id并将其传递给函数?,jquery,Jquery,HTML $('#modalBookmark')。on('显示',函数(){ getBookmarks(userId,$(this.data('id')); }); $('.btn添加列表')。单击(函数(e){ e、 预防默认值(); var bookmarkName=$('.des bookmark new input[name=“list”]')。val(); console.log(书签名); var bookmark={ownerId:userId,name:bookmarkName

HTML


$('#modalBookmark')。on('显示',函数(){
getBookmarks(userId,$(this.data('id'));
});
$('.btn添加列表')。单击(函数(e){
e、 预防默认值();
var bookmarkName=$('.des bookmark new input[name=“list”]')。val();
console.log(书签名);
var bookmark={ownerId:userId,name:bookmarkName};
添加书签(书签);
});
$('.des书签列表包装器')。在('click','.des书签链接',函数(e){
e、 预防默认值();
log('here-addbookmark group');
addBookmarkItem($(this),$(this.data('id'),$(this.parent().attr('data-bookmark-id'));
});
它将是动态id,将被传递给jquery bookmark函数以获取书签值,在选择书签组后显示计数,等等。 问题在于未定义$(this).data('id')


感谢您的帮助

当您打开
modal
框时,此函数目标
modal
div不是锚
opener
链接

<a class="bookmarkit" href="#modalBookmark" data-toggle="modal" role="button" data-id="${image?.id}">Bookmark</a>

$('#modalBookmark').on('shown', function(){

  getBookmarks( userId, $(this).data('id'));


});

$('.btn-add-list').click(function(e){
  e.preventDefault();
  var bookmarkName = $('.des-bookmark-new input[name="list"]').val();
  console.log(bookmarkName);
  var bookmark = { ownerId: userId, name: bookmarkName };
  addBookmark( bookmark );

});

$('.des-bookmark-list-wrapper').on('click', '.des-bookmark-link', function(e) {
  e.preventDefault();
  console.log('here - add bookmark group');
  addBookmarkItem( $(this), $(this).data('id'), $(this).parent().attr('data-bookmark-id') );
});
你应该这样试试

$('#modalBookmark').on('shown', function(){
   getBookmarks( userId, $(this).data('id'));
})
或使用
单击
事件

<a class="bookmarkit" href="#modalBookmark" data-toggle="modal" role="button" data-id="${image?.id}">Bookmark</a>
$('#modalBookmark').on('shown', function(){

  getBookmarks( userId, $(".bookmarkit").data('id'));

});
希望它能起作用

尝试使用
$(this).attr('data-id')

你说它没有定义是什么意思?我看到标记中的属性了吗?是不是
$(this).parent().attr('data-bookmark-id')
也没有定义?如果看不到这些单击函数所针对的整个html,就无法真正帮助您准确地遍历。$(“#modalBookmark”)这不会在代码中选择a标记,它将选择id=“modalBookmark”not href=“#modalBookmark”即a标记目标的元素,上面有数据id吗?您是否在
锚定
标记中添加了
#modalBookmark
id?在jQuery
$('#modalBookmark').on('showed',function(){..})中使用的
@d3c0y yes$(this).parent().attr('data-bookmark-id')返回它应该得到的值。@kittymoows,bootstreap
modal
将由于
data toggle=“modal”
属性而工作正常,但此部分
$('modalBookmark')。on('show',function(){getBookmarks(userId,$(this.data('id'));})
将在您将右选择器添加到
anchor
tagah时执行,我明白了。好的,我试过你的例子,但它返回未定义。嗯。@kittymeows,我已经修改了答案,请尝试这种方式。是的,我已经修改了它,它确实返回了一些东西,但问题已经解决了。放置…api/bookmarks/1027?item=6827&ownerId=7500(内部服务器错误)您可以尝试此kitty,替换
addBookmarkItem($(此),$(此).data('id'),$(此).parent().attr('data-bookmark-id')addBookmarkItem($(this),$(this.attr('data-id'),$(this.parent().attr('data-bookmark-id'))进行编码>
$(".bookmarkit").on('click', function(){
   getBookmarks( userId, $(this).data('id'));
})