在其他列表的基础上填充一个列表

发布于 2024-11-09 04:21:27 字数 416 浏览 0 评论 0原文

好的,所以我有一个像两个 div 的结构。在左侧 div 我有一个包含 10 个问题的列表,在右侧我想填充相同的答案。单击左侧的问题 1 后,答案应显示在右侧。单击第二个问题时,应显示第二个问题的答案,并隐藏所有答案。那么在 jquery 中执行此操作的理想方法是什么? 我写了类似的东西;

$("document").ready(function() {
   $("#idQ1").click(function() {
     $("#ansQ1").css("display","block");
    $("#ansQ1,#ansQ2,#ansQ3,#ansQ4,#ansQ5,.......#ansQ10").css("display","none");
})
}) 

但我认为这段代码不好。有人可以指导如何使用循环或函数来做到这一点

ok, so I have a structure like two divs. On the left side div I have a list of 10 questions, and on the right hand side I want to populate the answers for the same. On clicking the question1 on the left hand side the answer should display in the right hand side. On clicking the second question the answer for second should display, hiding all the answers. so what would be the ideal way to do it in jquery.
I wrote something like;

$("document").ready(function() {
   $("#idQ1").click(function() {
     $("#ansQ1").css("display","block");
    $("#ansQ1,#ansQ2,#ansQ3,#ansQ4,#ansQ5,.......#ansQ10").css("display","none");
})
}) 

but I dont think this code is good. can somebody guide as to how you would do this using loops or functions

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

疯了 2024-11-16 04:21:27

我会将 CSS 类 .question.answer 添加到适当的元素。您可以执行以下操作:

$("document").ready(function() {
   $(".question").click(function() {
      var questionId = $(this).Id;
      var answerId = "ans" + questionId.substr(2);
      $(".answer").hide();
      $("#"+answerId).show();
   })
})

HTML,
问题、

  <div id='idQ1' class='question'>question 1</div>

答案

<div id='ansQ1' class='answer'>answer 1</div>

I'd add CSS classess .question and .answer to the appropriate elements. Than you can do something like:

$("document").ready(function() {
   $(".question").click(function() {
      var questionId = $(this).Id;
      var answerId = "ans" + questionId.substr(2);
      $(".answer").hide();
      $("#"+answerId).show();
   })
})

HTML,
questions,

  <div id='idQ1' class='question'>question 1</div>

answers

<div id='ansQ1' class='answer'>answer 1</div>
就像说晚安 2024-11-16 04:21:27

其他答案都是使用类来编写有效的脚本,为此

我在这里创建了自己的示例,该示例使用锚标记来标记问题,并将 href 设置为答案元素的 id。

示例如下: http://jsfiddle.net/pxfunc/zEwUB/

HTML:

<div id="container">
    <div id="questions">
        <a href="#answer1">Question 1?</a>
        <a href="#answer2">Question 2?</a>
        <a href="#answer3">Question 3?</a>
    </div>
    <div id="answers">
        <p id="defaultText">Click a question to show the answer here!</p>
        <p id="answer1" class="answer">Answer 1!</p>
        <p id="answer2" class="answer">Answer 2!</p>
        <p id="answer3" class="answer">Answer 3!</p>
    </div>
</div>

jQuery:

$('#questions a').click(function(e) {
    e.preventDefault(); // prevents the link from changing the URL

    $('#answers p').hide(); // hide all answers
    $($(this).attr('href')).show(); // get href attribute to show answer
});

The other answers are dead on with using classes to write an efficient script for this

I've created my own example here that uses anchor tags for the questions with an href set to the id of an answer element.

example here: http://jsfiddle.net/pxfunc/zEwUB/

HTML:

<div id="container">
    <div id="questions">
        <a href="#answer1">Question 1?</a>
        <a href="#answer2">Question 2?</a>
        <a href="#answer3">Question 3?</a>
    </div>
    <div id="answers">
        <p id="defaultText">Click a question to show the answer here!</p>
        <p id="answer1" class="answer">Answer 1!</p>
        <p id="answer2" class="answer">Answer 2!</p>
        <p id="answer3" class="answer">Answer 3!</p>
    </div>
</div>

jQuery:

$('#questions a').click(function(e) {
    e.preventDefault(); // prevents the link from changing the URL

    $('#answers p').hide(); // hide all answers
    $($(this).attr('href')).show(); // get href attribute to show answer
});
街角卖回忆 2024-11-16 04:21:27

使用类选择器而不是 id

$("document").ready(function() {
   $(" .Questions").click(function() {
     $(" .answers").hide();
     $('#'+$(this).attr('id')+'answer').show();
})
}) 

HTML,
问题、

  <div id='q1' class='question'>question 1</div>

答案

<div id='q1answer' class='answer'>answer 1</div>

Use class selector instead of id

$("document").ready(function() {
   $(" .Questions").click(function() {
     $(" .answers").hide();
     $('#'+$(this).attr('id')+'answer').show();
})
}) 

HTML,
questions,

  <div id='q1' class='question'>question 1</div>

answers

<div id='q1answer' class='answer'>answer 1</div>
不及他 2024-11-16 04:21:27

您可以使用 classes 并选择它们

$(".classname").css(...)

,或者如果您愿意,您可以使用

$("[id^='ansQ']").css(...)

^= 开始。
http://api.jquery.com/attribute-starts-with-selector/

you can use classes and select them

$(".classname").css(...)

or if you want you can use

$("[id^='ansQ']").css(...)

^= is for starts with.
http://api.jquery.com/attribute-starts-with-selector/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文