字符串

时间:2016-12-26 22:34:00

标签: javascript jquery

好的,所以我在这里是一个小菜鸟,我认为我的术语可能有误,所以请随意纠正我(我需要学习)。

我想在常见问题解答页面上创建更好的用户体验,并询问用户该问题是否有用。如果没有提供替代品。我正在尝试将一个类添加到包含该问题的div中。

这是一个小提琴示例:https://jsfiddle.net/u596vwwn/

这是jQuery:

  $(document).ready(function() {
    $('.faq-question').click(function() {
      var question = $(this).attr('href');
      question = question.replace('#', '');
      var questionData = document.getElementById(question).innerHTML;
      document.getElementById(question).innerHTML = questionData + '<div class="row further-help">Did this answer your question? <span id="further-help-yes">Yes</span> | <span id="further-help-no">No</span></div>';
    });

    $('body').on('click', '#further-help-yes', function() {
      $(this).parent('.further-help').fadeOut();

    });

    $('body').on('click', '#further-help-no', function() {
      $(this).parent('.further-help').html('Please contact us <a href="#">here</a>.');

    });
  });

当用户点击小提琴中的链接时,我想要什么。然后问题的div容器会添加一个类,以便我可以设置样式。

我尝试了这样的元素:

 var questionContainer = document.getElementById(question);

然后添加一个类似的类:

questionContainer.addClass('selected-faq');

但它没有添加它。

2 个答案:

答案 0 :(得分:3)

那是因为questionContainer不是jQuery元素,而是使用普通JS(getElementById)选择的。试试这个:

var $questionContainer = $(question);
$questionContainer.addClass('selected-faq');

答案 1 :(得分:0)

您似乎通过在jQuery和普通Javascript之间切换来混淆自己。坚持使用jQuery来保持简单。

$('.faq-question').click(function() {
  var question = $($(this).attr('href'));
  question.append('<div class="row further-help">Did this answer your question? <span id="further-help-yes">Yes</span> | <span id="further-help-no">No</span></div>');
  question.addClass('selected-faq');
});