Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取在ajax调用jQuery中用作变量数据的id_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 获取在ajax调用jQuery中用作变量数据的id

Javascript 获取在ajax调用jQuery中用作变量数据的id,javascript,jquery,ajax,Javascript,Jquery,Ajax,我无法从调用相同ajax函数的链接中获取id。动态生成30多个链接,如下所示: <a href="javascript:void(0)" id="105">Item 105</a> <a href="javascript:void(0)" id="379">Item 379</a> <a href="javascript:void(0)" id="534">Item 534</a> 注1: 如果项目是动态生成的,请不要使用

我无法从调用相同ajax函数的链接中获取id。动态生成30多个链接,如下所示:

<a href="javascript:void(0)" id="105">Item 105</a>
<a href="javascript:void(0)" id="379">Item 379</a>
<a href="javascript:void(0)" id="534">Item 534</a>
注1:

如果项目是动态生成的,请不要使用“单击”或“绑定”

注2:

如果您使用的是旧的jquery版本,那么应该使用不推荐的liveversion:1.7,删除的:1.9

嗯,你可以使用live或onbest选项,也许你可以修复它

最佳方式示例:

您已生成动态:

<ul id="mylist">
    <li><a href="" id="...">...</a></li>
    <li><a href="" id="...">...</a></li>
    <li><a href="" id="...">...</a></li>
    <li><a href="" id="...">...</a></li>
    <li><a href="" id="...">...</a></li>
</ul>
老路穷路;不赞成:

在这里学习:

在这里:

完整示例:

JS:

HTML:

试试这里:


为了html的有效性,生成数据id属性,而不仅仅是id

<a href="javascript:void(0)" data-id="105">Item 105</a>
<a href="javascript:void(0)" data-id="379">Item 379</a>
<a href="javascript:void(0)" data-id="534">Item 534</a>
以这种方式为生成的链接注册事件

$( 'document' ).on( 'click' , 'a[data-id]', function( evt ) {
    evt.preventDefault();
    var $id = $( this ).data( 'id' );
    $.post( 'somefile.asp' , { sellerid: '<%=sellerid%>',
                               uid: '<%=uid%>',
                               itinid: $id
                             } , function( result ) {
         $( "#content" ).html( result );
    }, 'html');
});

我发布了答案,得到了几条好评论的帮助,还有两条我忘记了论坛是为了帮助人们不要批评。这花费了我-4分,但仍然值得

$('#templatelist a').click(function(){
    var $id = $(this).attr('id');
    //var $id = $( this ).data( 'id' );
    $.ajax({url: "trips-check.asp", data: {sellerid: '<%=sellerid%>', uid: '<%=uid%>', itinid: $id}, success: function(result){
        $("#content").html(result);
    }});
});

总之,$这在启用ajax方面起到了作用,但变量$id。$'a'没有完全起作用,但是链接必须包含在一个带有id templatelist的div中,所以只有那些链接触发了ajax。基本的东西是的,但对新手来说还是新的。

$this.clickfunction{-这到底是什么?你确定不想要$a.clickfunction吗{好的,那么,你有一个尝试,ajax工作了,那么问题出在哪里呢?把它分解一下。我很确定你可以在这个问题中省略ajax。对元素本身来说效果很好:你实际上是在将点击处理程序附加到什么上?$this.clickfunction也是谷歌搜索的结果:如何将相同的ajax功能附加到不同的按钮上/链接。但刚刚选中,它适用于任何需要改进的地方的任何单击。换句话说,您想知道如何使用jquery。我看到您将所有变量都放在“”中,将对此进行检查。还尝试使用相同的数据id,使用了不同的方法,但失败,将尝试使用yoursOk。但不要在$id上使用括号,这是我的错误。谢谢,您是正确的。以前尝试过类似的数据方法,但提取方式不同&不起作用。尝试过您的var$id=$this.data'id';尝试过my.ajax,如上所述,但不起作用。然后尝试了完整的脚本,但在使用Chrome调试器时根本不起作用。尝试用console.log$id+'\n'+替换行$content.html result结果;谢谢Waldemarlce,非常有用。我没有像上面建议的那样尝试将$this改为$this 100%有效,为每个按钮提供了正确的ajax结果。只需更改选择器以防止页面上调用ajax的所有链接尝试了这一点,但没有出现警报:$'mylist'。单击,'a',函数{alert$this.attr'id';}
$('#mylist li a').live('click', function(){
    alert( $(this).attr('id') );
})
$(document).ready(function(){
  var elements = [
    {id:1, text: "A", data: 'Hi'},
    {id:2, text: "B", data: 'Hello'},
    {id:3, text: "C", data: 'Hola'},
    {id:4, text: "D", data:'Ciao'},
    {id:5, text: "E", data:'Priviet'},
    {id:6, text: "F", data: 'Bonjour'},
    {id:7, text: "G", data:'Hallo'},
    {id:8, text: "H", data:'Olá'}
  ];
  $.each(elements, function( index, element ){
    var li = document.createElement('li'),
        a = document.createElement('a');
    $(a).attr('id', element.id)
    $(a).data('hello', element.data)
    $(a).text(element.text)
    $(li).append(a)
    $('#dynamics').append( li )
  })
  
  
  $('#dynamics').on('click', 'a', function(){
    var self = $(this);
    alert('You clicked on ' + self.text() + '. ' + self.data('hello') + ' id #' + self.attr('id') );
  })
});
<ul id="dynamics"></ul>
<a href="javascript:void(0)" data-id="105">Item 105</a>
<a href="javascript:void(0)" data-id="379">Item 379</a>
<a href="javascript:void(0)" data-id="534">Item 534</a>
$( 'document' ).on( 'click' , 'a[data-id]', function( evt ) {
    evt.preventDefault();
    var $id = $( this ).data( 'id' );
    $.post( 'somefile.asp' , { sellerid: '<%=sellerid%>',
                               uid: '<%=uid%>',
                               itinid: $id
                             } , function( result ) {
         $( "#content" ).html( result );
    }, 'html');
});
$('#templatelist a').click(function(){
    var $id = $(this).attr('id');
    //var $id = $( this ).data( 'id' );
    $.ajax({url: "trips-check.asp", data: {sellerid: '<%=sellerid%>', uid: '<%=uid%>', itinid: $id}, success: function(result){
        $("#content").html(result);
    }});
});