Javascript在元素之间导航

时间:2013-12-07 11:03:54

标签: javascript jquery html

我试图从'a'元素的click事件中获取不同元素的值。 鉴于代码:

<tr data-id="20">
  <div class="row">
    <td>
      <div class="btn-group">
        <a data-checked="false" class="btn btn-info btn-xs oiCmd-btn oiCmd-btn-paid-toggle">
          <span class="glyphicon glyphicon-unchecked"></span>
        </a>
        <a class="btn btn-primary btn-xs oiCmd-btn oiCmd-btn-mod-price">
          <span class="glyphicon glyphicon-usd"></span>
        </a>
      </div>
      <span>...</span>
    </td>
    <td>...</td>
    <td>...</td>
    <td>$<em class="oiPrice">50.00</em>
    </td>
  </div>
</tr>

我需要从点击事件'.oiCmd-btn-paid-toggle'获取oiPrice的值50.00和来自'tr'的data-id的值20。 我不知道我用.parent和.child尝试了很多东西,但我一直都弄错了。

3 个答案:

答案 0 :(得分:1)

您的HTML无效,tr不能将div作为孩子

然后

$('.oiCmd-btn-paid-toggle').click(function () {
    var $tr = $(this).closest('tr');
    var oiPrice = $.trim($tr.find('.oiPrice').text());
    var id = $tr.data('id');
})

演示:Fiddle

答案 1 :(得分:0)

var dataId = $("tr").attr("data-id");

您可以根据需要更改选择器$("tr")

var oiPrice = $(".oiPrice").html();

答案 2 :(得分:0)

由于我不知道完整的代码是什么,这可能适用于您的情况,也可能不适用。

来自data-id的

表示20:

$("tr[data-id]").attr("id");

来自oiPrice的50:

$(".oiPrice").val();

如果您有许多元素,可以使用.eq(x)进行调整。 希望这有帮助!