基于更改ID Jquery组合函数

时间:2017-09-21 14:30:58

标签: javascript jquery

好的,所以目前我在下面的功能正如他们应该的那样工作,但我将有超过30多个问题,所以我正在寻找某种方式来循环访问ID或问题。

每个功能中唯一不断变化的因素是ID。

// Q1
  $('#pq1').click(function() {
    $("#pq1 span.answer").toggleClass("short-answer");        
    $("#pq1 .expand-btn").text(($("#pq1 .expand-btn").text() == 'Read More') ? 'Read Less' : 'Read More').fadeIn();
  })

// Q2
  $('#pq2').click(function() {
    $("#pq2 span.answer").toggleClass("short-answer");
    $("#pq2 .expand-btn").text(($("#pq2 .expand-btn").text() == 'Read More') ? 'Read Less' : 'Read More').fadeIn();
  })

// Q3
  $('#pq3').click(function() {
    $("#pq3 span.answer").toggleClass("short-answer");
    $("#pq3 .expand-btn").text(($("#pq3 .expand-btn").text() == 'Read More') ? 'Read Less' : 'Read More').fadeIn();
  })

关于如何组合这些功能以便我不需要30+的任何想法都会有所帮助!感谢。

示例:https://jsfiddle.net/7xb59a01/3/

1 个答案:

答案 0 :(得分:1)

是的,你应该使用class:

$('.pq').click(function() {
    var $pq = $(this);
    $pq.find("span.answer").toggleClass("short-answer");        
    $pq.find(".expand-btn").text(($pq.find(".expand-btn").text() == 'Read More') ? 'Read Less' : 'Read More').fadeIn();
});