阅读更多始终打开第一个

Read more opens 1st one all the time

本文关键字:第一个      更新时间:2023-09-26

我有一个大约有10篇短文的页面。

每一个都是一个"阅读更多"按钮,按下后会显示隐藏的文本

我现在遇到的问题是,当我按下10个按钮中的任何一个按钮上的"阅读更多"时,它显示的是隐藏的第一篇文章,而不是选定的内容。

我想我需要为每一篇文章设置一个唯一的ID。。阅读更多按钮链接到它。但是我不知道如何设置它。

我看了这个,但无法让它工作如何使用javascript 给div标记一个唯一的id

var WidgetContentHideDisplay = {
init:function() {
   if ($('#content-display-hide').size() == 0) return;
    $('.triggerable').click(function(e){
        var element_id = $(this).attr('rel');
        var element = $('#'+element_id);
        element.toggle();
        if (element.is(':visible')) {
            $('.readmore').hide();
        } else {
            $('.readmore').show();
        }
       return false;
   });
}
}
var div = documentElemnt("div");
div.id = "div_" + new Date().gettime().toString;
$(document).ready(function(){ WidgetContentHideDisplay.init(); });

OP编辑:对不起,原始代码没有大写。我在尝试发布时不断出现错误,所以我将代码复制到Dreamweaver中,出于某种原因,它将其全部大写

您可以为您的项目设置一个类,并使用类选择(例如$('.DETAILED-ARTICLE)')来选择子项(或兄弟项等,具体取决于您构建HTML页面的方式),而不是选择要用ID(即$('#'+ELEMENT_ID))切换的元素。

理论上,每个ID都应该指向一个元素,但每个类可以放置到任意多的元素。

如果您遇到错误,请阅读错误并查看它们是什么。在快速阅读您的代码后,我注意到以下几件事可能会导致问题:

  • "documentElemnt"拼写错误,这将使它变得毫无用处。此外,documentElement是一个只读属性,而不是像您使用它那样的函数
  • toString是一个函数,而不是一个属性,如果没有括号(.toString()),它就不会像您希望的那样工作

运行代码,查看控制台中的错误,并修复它们。这就是你的出发点。