为什么我需要使用$()?目的是什么?

时间:2018-12-28 00:58:13

标签: javascript

我是Java语言的新手,尽管我不了解我的代码中使用$()的方法,但我目前正在尝试理解一段代码。我的问题可能很愚蠢,很抱歉。

更多详细信息: 有一个名为p_Element的对象,它具有两个属性(目标和菜单)。然后,有这行:

let l_Element = $(p_Element.target);

我尝试用替换它:

let l_Element = p_Element.target;

,但脚本似乎没有执行。

所以这是我的问题:这两行之间有什么区别? $(p_Element.target)返回什么?

如果您需要更多详细信息,这是我想要理解的一段代码:

var l_Targets = [
    {target: "#pve",            menu: ".pve"},
    {target: "#tutorial",       menu: ".tutorial"},
    {target: "#donation_home",  menu: ".donation"},
    {target: "#register",       menu: ".register"},
    {target: "#account_top",    menu: ".team"},
    {target: "#races",          menu: ".races"}
];
var l_Infos = {};
l_Targets.forEach(function(p_Element)
{
    let l_Element = $(p_Element.target); // Please explain me this line
    if (l_Element.length === 0 || l_Element.length > 1)
        return;
    let l_Top    = parseInt(l_Element.offset().top);
    let l_Bottom = parseInt(l_Element.offset().top + l_Element.height());
    l_Infos[p_Element.target] = {
        top: l_Top,
        bottom: l_Bottom,
        menu: p_Element.menu
    };

});

我不拥有此脚本,它来自这里:https://naicaonline.com/assets/js/home/navbar.js?v=0.08

3 个答案:

答案 0 :(得分:3)

#Redirect for CORS Preflight request RewriteCond %{REQUEST_METHOD} OPTIONS RewriteRule ^(.*)$ $1 [R=200,L] #Set headers to access CORS Requests / allowing localhost only Header always add Access-Control-Allow-Origin "*" Header always add Access-Control-Allow-Headers "origin, x-requested-with, content-type" Header always add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS" 是函数的名称。 $调用该函数。

这不是JavaScript内置的东西。原则上,您可以定义自己的变量或函数并将其命名为$(...),但实际上,它可能是jQuery提供的变量或函数。简介,请参见this link

答案 1 :(得分:1)

这称为 jQuery选择器,这是您使用的特定选择器的工作方式:

let l_Element = $(p_Element.target);

它将块范围变量l_Element分配给$(p_Element.target)p_ElementforEach循环中使用的当前项目,而.targettarget的{​​{1}}属性。查看数组p_Element-这是数组上的每次迭代将使l_Targets等于:

l_Element

var l_Targets = [ {target: "#pve", menu: ".pve"}, {target: "#tutorial", menu: ".tutorial"}, {target: "#donation_home", menu: ".donation"}, {target: "#register", menu: ".register"}, {target: "#account_top", menu: ".team"}, {target: "#races", menu: ".races"} ]; 的每个值都将根据当前迭代而变化。值将是这样:

l_Element

了解有关jQuery here的更多信息。

答案 2 :(得分:0)

let l_Element = $(p_Element.target); // This returns a JQuery Object.

这等于document.getElementById(p_Element.target); //but you need to remove # because in JQuery # this char is used to select dom elements by ID and . is used to select dom elements by class

JQuery使本地JS命令简短易用。