Fil*_*ype 6 javascript jquery coding-style
有没有更好的方法来编写以下功能?
让'#' + div_id我看起来不对劲.
function hide_div(div_id) {
$('#' + div_id).hide();
}
Run Code Online (Sandbox Code Playgroud)
如果你以某种方式反对字符串连接,那么你可以这样做:
$(document.getElementById(div_id)).hide();
Run Code Online (Sandbox Code Playgroud)
您也可以传入完全限定的选择器,如下所示:
hide_div("#divId");
Run Code Online (Sandbox Code Playgroud)
如果你想在vanilla Javascript中这样做,你可以这样做:
document.getElementById(div_id).style.display = "none";
Run Code Online (Sandbox Code Playgroud)
简短的回答:不。稍微更长、更黑客的答案:创建一个具有一个字母长名称的函数,该函数获取元素的 ID 并返回一个 getElementById ,然后将其包装在 jQuery 中$(),如下所示:
function i(id) {
if (document.getElementById(id)) return document.getElementById(id);
else return "";
}
Run Code Online (Sandbox Code Playgroud)
然后:
$(i(id)).doWhatever();
Run Code Online (Sandbox Code Playgroud)
但老实说,想一想:
$("#" + id)
12345678
$(i(id))
12345
Run Code Online (Sandbox Code Playgroud)
那是三个字符。这值得么?这三个角色对你来说真的那么重要吗?通过不使用 document.getElementById(id) (27 个字符),您已经节省了很多。