有没有办法阻止 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>