gpt4 book ai didi

javascript - 如果我在不存在的元素 ID 上使用 $ ("#ElementId").val() 是否有问题

转载 作者:行者123 更新时间:2023-12-02 15:13:57 26 4
gpt4 key购买 nike

我的 ASP.NET MVC Web 应用程序中有以下脚本:-

 $("body").on('click', '#DCSort', function () {



$.ajax({
type: "Get",
url: Path,

data: { searchTerm: $("#HsearchTerm").val(), page: "1", sort: $("#HDCSortPam").val(), pagesize: $("#FilterSize").val(), activefilter: $("#FilterActive").val() },

success: successFunc,
error: errorFunc
});

function successFunc(data, status) {
$(TargetTable).html(data);
$(DCProgressSort).hide();

}

function errorFunc() {
alert('error');
}
})

现在这是我的网络应用程序中使用的通用脚本,因此在某些网页上,它们没有将所有传递的参数包含在传递的数据中;$("#HsearchTerm").val(), $("#HDCSortPam").val(),$("#FilterSize").val (), $("#FilterActive").val()

现在,当我第一次部署脚本时,我认为如果脚本尝试在不存在的元素上使用 .val() ,则会引发错误,例如“FilterActive 未定义”..但如果javascript找不到它,它似乎会忽略该元素..因此,如果这是一种可接受的行为,任何人都可以建议让脚本保持原样,所以即使该元素不存在,脚本也会忽略它,而不会担心它...

最佳答案

jQuery 可以很好地处理它。例如,考虑选择器#HsearchTerm。假设没有与选择器匹配的元素,$("#HsearchTerm") 将是一个空的 jQuery 对象,而 $("#HsearchTerm").val() 将是未定义(不过没有错误)。

$.ajax 将忽略 data 对象中具有 undefined 值的键,因此结果将是 searchTerm 将被排除在 ajax 请求的查询字符串之外。

尽管如此,假设您总是可以跳过检查是否存在是不安全的。一般来说,如果您尝试访问 undefined 的属性,JavaScript 会抛出一个错误,因此像 $("#HsearchTerm").val().length 这样的东西会抛出一个错误错误。检查选择器是否有任何匹配项的常见方法是检查 length集合的:如果没有匹配,$("#HsearchTerm").length 将为 0

关于javascript - 如果我在不存在的元素 ID 上使用 $ ("#ElementId").val() 是否有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34617729/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com