1

我一直在尝试获取单击div相同类但具有不同 ID的 id 。我尝试了我所知道的一切。

这是我尝试过的一个代码(在这个代码中,.click function()不起作用..编辑:这意味着它似乎在单击时根本没有运行代码!):-

$(".u_search").click(function() {
    var attr_u_search = $(this).attr('id');
    var dataString = '&u_search=' + $(".u_search").attr('id');
    alert(dataString);

    $.ajax({
    type: "POST",
    url: '/script/profile.php',
    data: dataString,
    cache: false,
    success: function(data) {
          $('#ui_profile').show();
          $('#ui_profile').html(data);
          location.hash = 'profile' + 'id=' + dataString;
          $(".searchbox").val('');
          $("#usr_suggest").hide();

    }
  });
});

PHP:-

echo "<tr id='" . $id . "' class='u_search' height='40px'><td width='40px'><img class='avatar' src='$avater' /></td><td>" . $fname_ . " " . $lname_ . "</td></tr>";
}}


这是我尝试过的另一种代码组合(这个错误:假设我有 5 divs,即使我点击了第二个 div 或第三个 div,它也只捕获第一个div[ div1] 的 id 而不是点击的div。我想要能够捕获点击的IDdiv。): -

$(".u_search").click(function() {
    var attr_u_search = $(".u_search").attr('id');
    var dataString = '&u_search=' + $(".u_search").attr('id');
    alert(dataString);

    $.ajax({
    type: "POST",
    url: '/script/profile.php',
    data: dataString,
    cache: false,
    success: function(data) {
          $('#ui_profile').show();
          $('#ui_profile').html(data);
          location.hash = 'profile' + 'id=' + dataString;
          $(".searchbox").val('');
          $("#usr_suggest").hide();

    }
  });
});

PHP:-

echo "<tr id='" . $id . "' class='u_search' height='40px' onclick='javascript:op_prof(1)'><td width='40px'><img class='avatar' src='$avater' /></td><td>" . $fname_ . " " . $lname_ . "</td></tr>";
}}

编辑:当我使用第一个代码(带有.click function()的代码)时,代码似乎根本没有运行!.. 我正在使用 jquery 库版本 1.9.1

4

8 回答 8

1

Inside your function change

$('.u_search').attr('id')

To

$(this).attr('id')

The quotes are important, but this is not inside quotes ;)

于 2013-04-19T11:46:27.210 回答
0
  $("div").on("click",function(){
     var id = this.id; //returns id
   });
于 2013-04-19T11:35:55.400 回答
0
var attr_u_search = $(this).attr('id');
var dataString = '&u_search=' + $(".u_search").attr('id');

您再次选择每个 u_search div 来构建您的数据字符串,而不是使用已经获取的 id:

var attr_u_search = $(this).attr('id');
var dataString = '&u_search=' + attr_u_search;
于 2013-04-19T11:36:13.997 回答
0
$('body').delegate('.u_search', 'click', function() {
    var attr_u_search = $(this).attr('id');
    var dataString = '&u_search=' + attr_u_search;
    alert(dataString);
});
于 2013-04-19T11:52:29.243 回答
0

尝试这个 :

$('body').on('click', '.u_search', function() {
  var attr_u_search = $(this).attr('id');
  var dataString = '&u_search=' + attr_u_search;
  alert(dataString);
  // REST OF CODE
});

(经过测试并可以正常工作,如果仍然无法正常工作,则问题可能出在其他地方)

于 2013-04-19T11:41:25.183 回答
0

我认为是: $(this).attr('id') 您需要使用 $(this) 来获得单击的对象..

var attr_u_search = $(this).attr('id');
var dataString = '&u_search=' + attr_u_search; // it's better !
于 2013-04-19T11:33:11.247 回答
0

当你这样做

$(".u_search").click(function() {...

您的回调函数现在有一个名为this. 您可以使用它来获取您单击的实际对象。所以在这种情况下,如果你想获取被点击对象的 ID,只需这样做:

var the_id = $(this).attr("id");
于 2013-04-19T11:33:17.987 回答
0

在函数内部,您可以使用 $(this) 引用活动的 jquery 对象

$(".u_search").click(function() {
 ...
 //get ID of button being clicked upon
//Jquery Solution
 $(this).attr('id');

//Or Javascript
  this.id;
 ...
}
于 2013-04-19T11:33:56.837 回答