jQuery の attr() 関数が DOM ツリーをバブリングする (またはダウンする) のを止める方法はありますか? stopPropagation() 関数を試しましたが、attr() では機能しないようです。私のコードには、attr() で呼び出される関数があり、その関数には、関数を呼び出す他の 2 つの attr() メソッドがあります。本質的に、ネストされた foreach ループの jQuery バージョンがあります (ただし、それぞれを試しました()しかし、それはうまくいきませんでした)。泡立ちを止める別の方法はありますか?
私のjQueryコード:
$(document).ready(function() {
$("#assessform_page").on("submit", "#assessform", function(e) {
e.preventDefault();
assessrows = {};
url = $(this).attr("action");
$("div").attr("data-test-num", function(k) {
k.stopPropagation();
assessrows[k + 1] = {};
$("input, select").attr("data-tab-row", function(v) {
v.stopPropagation();
assessrows[k + 1][$(this).attr("data-tab-row")] = $(this).val();
});
$("label").attr("data-tab-row", function(v) {
v.stopPropagation();
assessrows[k + 1][$(this).attr("data-tab-row")] = $(this).text();
});
});
console.log(assessrows);
});
});
私のHTMLコード:
<form id="assessform" action="review.php" method="post" enctype="application/x-www-form-urlencoded" name="assessform">
<div data-test-num="1">
<label data-tab-row="objname">First Value: </label>
<select autofocus="autofocus" data-tab-row="status">
// options
</select>
<input type="text" data-tab-row="numer" value="" />
<br />
<br />
</div>
<div data-test-num="2">
<label data-tab-row="objname">Second Value: </label>
<select data-tab-row="status">
// options
</select>
<select data-tab-row="numer">
// options
</select>
<input type="hidden" data-tab-row="denom" value="1" />
<br />
<br />
</div>
<button type="submit" name="submit-button" id="submit-button">Submit</button>
</form>