i trying adapt height of parent div depending on text length of child p.descr. applying class, in turn has different height in css. find below jquery code:
$(document).ready(function(){ $('p.descr').each(function(){ if($(this).text().length < 90){ $(this).parent().addclass('bigp90'); } if($(this).text().length [90,180]) { $(this).parent().addclass('bigp180'); } if($(this).text().length [181,270]) { $(this).parent().addclass('bigp270'); } if($(this).text().length [271,360]) { $(this).parent().addclass('bigp360'); } if($(this).text().length > 360) { $(this).parent().addclass('bigp450'); } }); }); the problem class bigp90 , bigp450 applied , work fine, not ones in middle. means there wrong syntax can't figure out what. thanks.
length [90,180] doesn't test whether length between 90 , 180. square brackets accessing array elements or object properties, treats length array , tries access 180'th element of array.
there's no short syntax testing range in javascript. test if it's above lower limit , below upper limit, e.g.
if (val >= 90 && val < 180) but since you've tested lower limit previous if, can use else if test next upper limit, lower limit test redundant.
$(document).ready(function() { $('p.descr').each(function() { var len = $(this).text().length; var parent = $(this).parent(); if (len < 90) { parent.addclass('bigp90'); } else if (len < 180) { parent.addclass('bigp180'); } else if (len < 270) { parent.addclass('bigp270'); } else if (len < 360) { parent.addclass('bigp360'); } else { parent.addclass('bigp450'); } }); });
Comments
Post a Comment