1
data-id属性を持つアンカータグから最も近いdivにアクセスしようとしています。親divのデータ属性値をjQueryでいくつかのレベルを調べる
.parent().parent().parent()
が動作しますが、実際にはそのことを避けるようにしています。
<div class="panel panel-default" data-id="@customer.Id">
<div class="panel-heading clearfix">
@customer.Name
<div class="pull-right">
<a class="btn btn-sm btn-default js-deleteCustomer" href="#" title="Delete">
<i class="fa fa-trash" aria-hidden="true"></i>
</a>
</div>
</div>
私は次のことを試してみました:
var customerId = $(this).closest("div:has(*[data-id])").attr('data-id');
これは完璧に機能しました。あなたが言ったように.data()と.attr()はどちらも動作します。唯一の違いは.data()は実際の数値を返し、.attrはそれを文字列として返します。 –
@Blake Rivell:ああ、十分です。 .data()は型変換を行うのを忘れていました。 – BoltClock
実際に私の主な問題は、実際のコードではdata-idの代わりにdata-customerIdという名前を使用していたことです。大文字はデータ属性では機能しません。あなたはこれを知っていましたか? –