Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery语法问题(获取链接ID)_Jquery_Html_Ajax - Fatal编程技术网

jQuery语法问题(获取链接ID)

jQuery语法问题(获取链接ID),jquery,html,ajax,Jquery,Html,Ajax,我有一系列链接,每个链接都有自己的id: <li><a id="about" href="#">About</a></li> <li><a id="call-us" href="#">Contact us</a></li> <li><a id="home" href="#">Head on home</a></li> 有没有一种方法可以抽象出这样一个事

我有一系列链接,每个链接都有自己的id:

<li><a id="about" href="#">About</a></li>
<li><a id="call-us" href="#">Contact us</a></li>
<li><a id="home" href="#">Head on home</a></li>
有没有一种方法可以抽象出这样一个事实:当我点击类“ajax”的链接时,我获取它的
#ID
,查看
.data.html
,然后从
data.html
中提取ID为
#ID
的div

(我现在知道这并没有指定类,但假设我有5个锚,比如

这无疑会使代码更易于维护。任何输入都将是宏大的。

是的,非常容易:

$(document).ready(function(){
    $("a.ajax").click(function(e){
        $("#content").load("/data.html #" + this.id);
        e.preventDefault();
    });
});

您可以为每个链接提供如下类:

$(document).ready(function(){
    $("a.about").click(function(event){
        $("#content").load("/data.html #about");
    });
    $("a.call-us").click(function(event){
        $("#content").load("/data.html #call-us");
    });
});
<li><a id="about" href="#" class="ajax">About</a></li>
<li><a id="call-us" href="#" class="ajax">Contact us</a></li>
<li><a id="home" href="#" class="ajax">Head on home</a></li>

至于您对“/data.html id”的调用,我不确定“data.html”是什么正如我在上面所做的那样,您确实希望将ID作为GET或POST参数传递,但您需要在这里做什么取决于您调用的确切内容。

我觉得我的回答太直截了当了,我是否误解了您问题的一部分?嗯,有时人们会问一些直截了当的问题:)我正在测试,但很快就会接受。谢谢酷!函数(e)位在做什么?Alex,
e
是传递给函数的“事件”对象。这允许重新定义原始行为。如果您单击带有
href='#'
标记,而不取消默认行为,页面通常会滚动到顶部或底部,并将
#
附加到url。您有
函数(事件)
,它与
函数(e)
相同,但重要的部分是
e.preventDefault()
事件.preventDefault()
,它可以防止浏览器出错:)我理解这意味着他在使用jQuery的功能过滤结果,并且只使用一部分。因此
data.html#about
将只使用
data.html
page.data.html上带有
id=“about”
的元素的内容。html只是另一个保存我的旋转静态内容的页面。@dcneiner,这是正确的。实际上,我在一个页面上有10个产品图标,当你点击其中一个时,说明(在data.html中,in)将被加载到“landing area”div中
<ul id="links">
  <li><a id="about" href="#">About</a></li>
  <li><a id="call-us" href="#">Contact us</a></li>
  <li><a id="home" href="#">Head on home</a></li>
</ul>
$(function() {
  $("#links a").click(function() {
    $("#content").load("/data.html?id=" + this.id);
    return false;
  });
});