jquery - .each() 在一次迭代后停止?

标签 jquery each

这么简单的问题,但我不明白......

function pageLoad() {
    runDatepickers();
    $("#btnSubmit").click(function () {
        $('span[id^="rfv"]').css("display", "block");
        alert("Submit was clicked");
        $('span[id^="rfv"]').each(function () {
            alert($(this).attr("id"));
            if ($(this).css("display") = "inline") {
                alert("display is inline");
                $(this).css("display", "block");
            }
        });
    });
};

这会在一次迭代后停止,页面上有多个以“rfv”开头的跨度,第一个语句 $('span[id^="rfv"]').css("display ", "block"); 确实正确选择并更改了所有这些元素的显示,但根据我的警报,当我进入每个元素时,它只匹配第一个元素,仅此而已。我在这里缺少什么??

最佳答案

正确性:更改

if ($(this).css("display") = "inline")

if ($(this).css("display") === "inline")

性能:在适当的地方缓存 jQuery 选择器。

简洁:利用.css() can take a function这一事实作为第二个参数。

<小时/>
function pageLoad() {
    runDatepickers();
    $("#btnSubmit").click(function () {
        $('span[id^="rfv"]').css("display", function (i, display) {
            return display === "inline" ? "block" : display;
        });
    });
};
<小时/>

尾声:请,哦,请不要使用alert()进行调试。使用真正的调试器。

关于jquery - .each() 在一次迭代后停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5735912/

相关文章:

javascript - 使用 jQuery 通过循环验证一系列单选按钮

javascript - 在 javascript/jquery 中获取多个检查值

javascript - jQuery $.ajax 和 $.each 循环遍历数组

jQuery 悬停菜单链接项和更改图像

jquery - 可以使用 jQuery 深度克隆 HTML5 canvas 元素吗?

javascript - 上传文件对象结构

javascript - 使用 jquery 将 ID 分配给动态生成的元素

javascript - 尝试使用按钮将 HTML 加载到 div 中

javascript - 如何通过 jQuery 循环遍历某种类型的所有元素?

javascript - Woocommerce 用户帐户页面加载条目,无需整个重新加载