0

我发布这个问题是因为前一个问题太长了(如果我在其中切割部分可能会造成混乱)。我在这篇文章中使问题更简单:)。

jQuery代码: -

function op_prof(id) {
    var attr_u_search = $(".u_search").attr('id');
    var dataString = 'u_search=' + attr_u_search;
    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>";
}}

我无法检索ID每个div(每个都有一个唯一的ID)。似乎 jQuery 捕获了ID顶部div(第一个div)的 s 而不是捕获ID所有divs.

屏幕截图:-
http://prntscr.com/118dhv
http://prntscr.com/118dus

PS:我 100% 确定 jQuery 中有错误:-> prntscr.com/118eb5

4

4 回答 4

2

尝试修改on-click属性tr

由此:

onclick='javascript:op_prof(1)

对此:

onclick='javascript:op_prof(this)'

而js对此:

function op_prof(obj) {
    var attr_u_search = obj.id;
    ....
于 2013-04-19T12:46:23.847 回答
1

由于您已经在使用 jQuery,这里有一个完整的 jQuery 解决方案:

$("tr.u_search").on("click", function() {
    var attr_u_search = $(this).attr('id');
    var dataString = 'u_search=' + attr_u_search;
    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();
        }
    });
};
于 2013-04-19T12:50:59.427 回答
0

'ob_prof' 的第一个参数总是 = 1 吗?

javascript:op_prof(1)
于 2013-04-19T12:46:36.093 回答
0

attr() 方法设置或返回所选元素的属性和值。

该方法用于返回属性值时,返回第一个匹配元素的值。

使用 $.each()

api.jquery.com/jQuery.each/

于 2013-04-19T12:48:55.790 回答