如何使JQuery DIV切换更加动态?

如何使JQuery DIV切换更加动态?,jquery,asp.net-mvc,Jquery,Asp.net Mvc,如何使下面的函数更具动态性?例如,commentLink和commentContainer后面将有一个ID,如下所示commentLink-2289commentContainer-2289,因为列表中会有多个ID Javascript Html 加载。。。 注意:请提供一个工作示例,我通过示例学习的效果最好谢谢尝试以下方法: jQuery(function($){ $("a[id^='commentLink-']").click(function(){ match =

如何使下面的函数更具动态性?例如,commentLink和commentContainer后面将有一个ID,如下所示commentLink-2289commentContainer-2289,因为列表中会有多个ID

Javascript Html

  • 加载。。。
注意:请提供一个工作示例,我通过示例学习的效果最好谢谢尝试以下方法:

jQuery(function($){ 
  $("a[id^='commentLink-']").click(function(){
    match = this.id.match(/commentLink-(\d+)/);
    container = $("div#commentContainer-"+match[1])
    container.toggle();
    if (container.is(":visible")) {
        container.load($(this).attr("href"));
    } else {
        container.html("Loading...");
    }
    return false; //Prevent default action
  });
});
但是如果你可以发布html或者html的链接,这样我们就可以看到你使用的格式了。 我不知道你得到的错误是来自我的代码还是你的(因为我的代码只是你的一个模版)。脚本中的错误在哪一行号上


编辑我原来的代码在这个.id.match行中有一个bug,上面已经修复了,现在试试吧


编辑: 此外,在您提供的HTML中还有一个额外的结尾
,不确定这是否是打字错误,但应该删除它


click事件应包装在$(document).ready(function(){…})中;这样jquery就可以准确地访问dom(因为您正在查询
元素)。我遇到了一个问题,最后一个
返回false未被访问,我怀疑它与is(:可见)代码有关。if/else块的预期功能是什么?

你为什么要把这个问题作为一个新问题来回答?这完全违背了堆栈溢出的目的。因为我在问一个问题。。。。我需要知道我错在哪里?对,但是使用问答的堆栈溢出格式,而不是问题、问题、问题。它完全违背了这个网站的目的,也让其他用户更难使用它。您的答案发布在下面,没有bug。确认,您是否可以尝试逐步完善您的答案,多个答案往往会令人困惑。我真的很想编辑你的答案,这样我们就永远不需要意识到前面有一个问题,通过在任何地方复制粘贴示例代码,但我会让你自己做。肯特,你是说我需要逐步完善,还是说dswatik?他以前问过这个问题,然后把问题转移到这个问题上,并附上我从上一个问题中提出的答案。我只是想为他找到最好的答案。如果我做得不对,我道歉。谢谢你的清理。:)我想说的是,这里有3个答案,都是你的,2个是你发的,1个是他从上一个问题发的。这对我来说毫无意义,我认为最好给没有看到前一个问题的人一个连贯的答案。我100%同意,因为我不确定他是否在阅读,所以我犹豫是否将后续评论作为评论发布。我将感谢您的编辑/组织,我肯定会在后续问题上做得更好。谢谢我已经把它清理了一点,看看结果,确保你对它的现状感到满意,因为我不想为你说话,所以你需要同意我的更改;)
<div id="SystemNews">
 <ul id="dc_news">
   <li>
     <a href="/Home/SystemNews/69" id="commentLink-0">Comments</a>
     <div id='commentContainer-0' style="display:none;">    Loading...</div>
   </div>
   </li>
   </ul> 
</div>
jQuery(function($){ 
  $("a[id^='commentLink-']").click(function(){
    match = this.id.match(/commentLink-(\d+)/);
    container = $("div#commentContainer-"+match[1])
    container.toggle();
    if (container.is(":visible")) {
        container.load($(this).attr("href"));
    } else {
        container.html("Loading...");
    }
    return false; //Prevent default action
  });
});