2580 posts Put a Donk On It
  • Has referred 200+ members
  • Has sold $250,000+ on Envato Market
  • Has collected 10+ items on Envato Market
  • Elite Author: Sold more than $75,000 on Envato Market
+10 more
ThemeProvince says

Here is my code:


$jadmin("#page_template_select select").change(function () {

    var selected_meta_box = '#' + (($jadmin(this).find("option:selected").attr("role")).replace(/ /g, "_")).toLowerCase();

    $jadmin("#page_template_select select option").each(function () {

        if ($jadmin(this).text() != "Default") {

        var meta_box = $jadmin(this).attr("role").replace(/ /g, "_").toLowerCase();

        $jadmin('div#' + meta_box).hide();

        }

    });

    $jadmin(selected_meta_box).show();

});

Why do I get this error?

Uncaught syntax error, unrecognised expression: #

I don’t get how it can call a string an expression.

Been trying to diagnose for 2 hours and I can’t find a solution, please help!

2074 posts
  • Made it to the Authors' Hall of Fame
  • Had an item featured on Envato Market
  • Provided great feedback to improve the user experience on Envato Market
  • Interviewed on an Envato blog
+9 more
revaxarts says
Try

$jadmin("#page_template_select select").change(function () {

    var selected_meta_box = (($jadmin(this).find("option:selected").attr("role")).replace(/ /g, "_")).toLowerCase();

    $jadmin("#page_template_select select option").each(function () {

        if ($jadmin(this).text() != "Default") {

        var meta_box = $jadmin(this).attr("role").replace(/ /g, "_").toLowerCase();

        $jadmin('div#' + meta_box).hide();

        }

    });

    $jadmin('#' + selected_meta_box).show();

});

2580 posts Put a Donk On It
  • Has referred 200+ members
  • Has sold $250,000+ on Envato Market
  • Has collected 10+ items on Envato Market
  • Elite Author: Sold more than $75,000 on Envato Market
+10 more
ThemeProvince says

Didn’t work :(

It only works without the each function like this:


$jadmin("#page_template_select select").change(function () {

    var selected_meta_box = (($jadmin(this).find("option:selected").attr("role")).replace(/ /g, "_")).toLowerCase();

    $jadmin('#' + selected_meta_box).show();

});

So its something wrong with that.

1012 posts
  • Has been part of the Envato Community for over 4 years
  • Has referred 10+ members
  • Has sold $10,000+ on Envato Market
  • Has collected 10+ items on Envato Market
+6 more
wizylabs says

on which line does that error appear? http://cl.ly/7jZ6 or http://cl.ly/7hyV

3468 posts
  • Elite Author: Sold more than $75,000 on Envato Market
  • Has sold $750,000+ on Envato Market
  • Located in United States
  • Helps us moderate the forums
+10 more
sevenspark Moderator says

Weird, your code seems to work in this fiddle: http://jsfiddle.net/sevenspark/8pYUy/1/

2580 posts Put a Donk On It
  • Has referred 200+ members
  • Has sold $250,000+ on Envato Market
  • Has collected 10+ items on Envato Market
  • Elite Author: Sold more than $75,000 on Envato Market
+10 more
ThemeProvince says

Yesss! I fixed it. There was somehow an extra interation in the each loop. So when jquery tried to hide it, it didnt exist so threw an error. Weird though as this never usually happens, its like my code was haunted by an AS3 compiler.

by
by
by
by
by
by