在span中查找最接近的id

时间:2013-02-06 06:20:02

标签: jquery

我在span中有两张图片。我需要每个图像点击id1的值。

<span class="deleteid">
  @Html.ActionLink(item.categoryModel.catName, "Show", new { id1=item.itemId})
  <img id="iconItemEdit" src="@Url.Content("~/Content/MyIcons/ee.png")" 
   style="width: 13px; height: 13px;"/>

  <img id= "iconDelete" src="@Url.Content("~/Content/MyIcons/delete.png")" 
    alt="delete" style="width: 13px; height: 13px;"/>
</span>

对于我使用的第一张图片

$('#iconItemEdit').live('click', function () {
    var it = $(this).prev().attr('id1');

工作正常。我在查找第二张图片的ID时遇到问题。我尝试使用相同的代码,但它没有用。

$('#iconDelete').live('click', function () {
    var it = $(this).prev().attr('id1');
    alert(it);

正在返回undefined

4 个答案:

答案 0 :(得分:1)

我怀疑你会遇到两个问题。首先,您获得'id1'属性,而不是'id'。这可能是你想要的,但'id'更常见。

最初的问题可能只是你试图在没有兄弟姐妹的情况下获得元素的前一个兄弟。请参阅此JSFiddle以获取示例: http://jsfiddle.net/Knjfh/

$(function(){
    var sID = $("#three").prev().attr("id");
    $("body").append("<p>The element previous to #three has the id '" + sID + "'</p>");
    sID = $("#one").prev().attr("id");
    $("body").append("<p>The element previous to #one has the id '" + sID + "'</p>");
});

答案 1 :(得分:0)

试试这个:

   var Id = $(this).find('span.deleteid').data('id');

答案 2 :(得分:0)

我不完全清楚你想要什么,但试试这个:

$('#iconDelete').live('click', function () {
    var it = $(this).closest('span').find('a').attr('id1');
    alert(it);
}); 

答案 3 :(得分:-1)

尝试:

$('#iconDelete').live('click', function () {
    var it = $(this).closest('span').attr('id1');
    alert(it);
});