[{"data":1,"prerenderedAt":181},["ShallowReactive",2],{"project-12897784":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":15,"aspects":35,"strip":39,"post_text":41,"what":42,"said":69,"maker_in_thread":126,"shape":128,"grid":131,"attempts":142,"same_week":143,"maker_shows":172,"maker_hidden":173,"reader_version":174,"card":175},"12897784","Super DOM","Super DOM, manipulate the DOM like it's 2016","title","Show HN: Super DOM, manipulate the DOM like it's 2016","https:\u002F\u002Fsuperdom.site\u002F","superdom.site","franciscop",1478581132,2016,26,6,1054,2264,47,"shown","languages","dom manipulation library","library",[24,25,26,27],"dom manipulation","javascript library","jquery alternative","proxy","debated",0.244,{"positive":31,"neutral":32,"mixed":33,"critical":34},3,0,1,2,{"performance":36,"idea":37,"design":38},{"positive":32,"critical":32},{"positive":34,"critical":32},{"positive":33,"critical":34},[31,40,40,33,33,40],5,null,{"problem":43,"audience":41,"pricing":41,"motivation":41,"time_to_build":41,"stack":59,"openness":68,"stage":68,"team_size":68},{"value":44,"source":45,"evidence":46},"Verbose DOM API; makes element selection and manipulation more concise.","inferred",[47,51,55],{"id":48,"by":49,"text":50},"12899139","fiatjaf","I hope no one says this is just a way of creating bloat. I would say to this people: go complain of jQuery if you have the guts for it. This thing is beautiful and, at least for…",{"id":52,"by":53,"text":54},"12900925","shakna","I love this. It feels like how the DOM API should have been implemented. And minified its about 4kb. Though I hate website bloat, this doesn't feel so bad. When it stabilises,…",{"id":56,"by":57,"text":58},"12930231","nenadg","Very natural way of working with DOM. Very beautiful :-).",[60],{"value":61,"source":62,"evidence":63},"JavaScript (uses Proxy)","commenter",[64],{"id":65,"by":66,"text":67},"12900804","yladiz","This is actually really cool, and I'd be interested in performance of this versus something like jQuery. That said, this is really only for really modern browsers as it uses a…","unknown",{"praise":70,"objections":86,"requests":102,"questions":107,"alternatives":115},[71,77,81],{"value":72,"source":62,"evidence":73},"Beautiful, natural way to work with the DOM",[74,75,76],{"id":48,"by":49,"text":50},{"id":52,"by":53,"text":54},{"id":56,"by":57,"text":58},{"value":78,"source":62,"evidence":79},"Lightweight, about 4kb minified",[80],{"id":52,"by":53,"text":54},{"value":82,"source":62,"evidence":83},"Useful for small projects",[84,85],{"id":48,"by":49,"text":50},{"id":65,"by":66,"text":67},[87,91,98],{"value":88,"source":62,"evidence":89},"Requires modern browsers because Proxy cannot be polyfilled",[90],{"id":65,"by":66,"text":67},{"value":92,"source":62,"evidence":93},"Not general enough for a general-purpose API; attribute lookup on class elements is unclear",[94],{"id":95,"by":96,"text":97},"12902884","tveita","> It feels like how the DOM API should have been implemented. It doesn't look general enough to be a general-purpose API, for instance how would you look up an attribute on all…",{"value":99,"source":62,"evidence":100},"Abstractions over DOM edge cases (elements named id, class, attr) may break",[101],{"id":95,"by":96,"text":97},[103],{"value":104,"source":62,"evidence":105},"Performance comparison with jQuery",[106],{"id":65,"by":66,"text":67},[108],{"value":109,"source":62,"evidence":110},"How to look up an attribute on all elements of a given class",[111,112],{"id":95,"by":96,"text":97},{"id":113,"by":53,"text":114},"12922872","Not sure if it's implemented in superdom but: ``` for(i = 0; i \u003C dom.class.\u003Cclass>.length; i++) { console.log(dom.class.\u003Cclass>[i].\u003Cattr>); } ``` The DOM API isn't consistent,…",[116,121],{"value":117,"source":62,"evidence":118},"jQuery",[119,120],{"id":65,"by":66,"text":67},{"id":48,"by":49,"text":50},{"value":122,"source":62,"evidence":123},"Native DOM API",[124,125],{"id":95,"by":96,"text":97},{"id":113,"by":53,"text":114},{"comments":32,"answered":32,"key":127},[],{"commenters":40,"max_depth":31,"maker_replies":32,"first_comment_mins":129,"lifespan_hours":130},342,80,[132,134,136,137,139,140],[65,32,31,133,66,32],"project\u002Fmixed\u002Fperformance",[48,33,40,135,49,32],"project\u002Fpositive\u002Fidea",[52,34,40,135,53,32],[95,34,33,138,96,32],"project\u002Fcritical\u002Fdesign",[113,34,33,138,53,32],[56,31,40,141,57,32],"project\u002Fpositive\u002Fdesign",[],[144,149,154,159,163,168],{"id":145,"name":146,"points":147,"category":148},"12879179","Jasonette",648,"dev_tools",{"id":150,"name":151,"points":152,"category":153},"12909967","DevFreeBooks",571,"learning_science",{"id":155,"name":156,"points":157,"category":158},"12891158","DeepRhyme (D-Prime)",208,"ai",{"id":160,"name":161,"points":162,"category":148},"12874740","Best of Themes",164,{"id":164,"name":165,"points":166,"category":167},"12862195","Portainer",146,"infrastructure",{"id":169,"name":170,"points":171,"category":20},"12860602","SkateJS",144,13,false,"v2",{"id":176,"name":5,"line":6,"ai":173,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":177,"top":18,"kw":178,"maker":11,"domain":10,"tier":19,"attempts":32,"strip":179,"url":9,"mix":180,"praise":72,"objection":88,"sub":21},12897784,0.24,[24,25,26,27],"355115",[31,32,33,34],1794036549310]