2627 posts Put a Donk On It
  • Elite Author: Sold more than $75,000 on Envato Market
  • Sells items exclusively on Envato Market
  • Made it to the Authors' Hall of Fame
  • Has sold $250,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!

2261 posts
  • Became a Top 20 Author of the Month
  • Created a helpful tool/app using the Envato API
  • Created a helpful tool/app for Envato Market users
  • Had an item that was trending
+14 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();

});

2627 posts Put a Donk On It
  • Elite Author: Sold more than $75,000 on Envato Market
  • Sells items exclusively on Envato Market
  • Made it to the Authors' Hall of Fame
  • Has sold $250,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
+7 more
wizylabs
says

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

3532 posts
  • Became a Top 20 Author of the Month
  • Had an item that was trending
  • Elite Author: Sold more than $75,000 on Envato Market
  • Has sold $750,000+ on Envato Market
+12 more
sevenspark
Moderator
says

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

2627 posts Put a Donk On It
  • Elite Author: Sold more than $75,000 on Envato Market
  • Sells items exclusively on Envato Market
  • Made it to the Authors' Hall of Fame
  • Has sold $250,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