Skip to main content
frameexpert
Community Expert
Community Expert
June 22, 2018
Answered

Get the default value for an element's attribute

  • June 22, 2018
  • 1 reply
  • 672 views

I use this to get an attribute value that is assigned to a particular element:

var version = getAttributeValue (element, "TemplateVersion");

alert (version);

function getAttributeValue (element, name) {

   

    var attrList = element.Attributes, i = 0;

    for (i = 0; i < attrList.length; i += 1) {

        if (attrList.name === name) {

            if (attrList.values[0]) {

                return (attrList.values[0]);

            }

            else {

                // If the attribute exists, but doesn't have a value, return an empty string.

                return "";

            }

        }

    }  // If the attribute doesn't exist, return undefined.

}

In this particular case, TemplateVersion is read-only and is assigned in the EDD as a default value. When I use the function above, it returns a blank string because the value has been set as a default and not explicitly set. How can I return the default value of the attribute? Thank you very much.

This topic has been closed for replies.
Correct answer frameexpert

OK, I get it. I have to go through the element's ElementDef (element definition) property:

var version = getDefaultAttributeValue (element, "TemplateVersion");

alert (version);

function getDefaultAttributeValue (element, name) {

   

    var elementDef, attributeDefs, i;

   

    elementDef = element.ElementDef;

    attributeDefs = elementDef.AttributeDefs;

    for (i = 0; i < attributeDefs.length; i += 1) {

        if (attributeDefs.name === name) {

            return (attributeDefs.defValues[0]);

        }

    }

}

1 reply

frameexpert
Community Expert
frameexpertCommunity ExpertAuthorCorrect answer
Community Expert
June 22, 2018

OK, I get it. I have to go through the element's ElementDef (element definition) property:

var version = getDefaultAttributeValue (element, "TemplateVersion");

alert (version);

function getDefaultAttributeValue (element, name) {

   

    var elementDef, attributeDefs, i;

   

    elementDef = element.ElementDef;

    attributeDefs = elementDef.AttributeDefs;

    for (i = 0; i < attributeDefs.length; i += 1) {

        if (attributeDefs.name === name) {

            return (attributeDefs.defValues[0]);

        }

    }

}

www.frameexpert.com
4everJang
Legend
June 22, 2018

Hi Rick,

I was digging up some old dusty scripts as I remembered I have done this. Yes, that was the trick. The element definition has all the default settings.

Glad you figured it out. There is a LOT of dust on those old scripts. :-)

Ciao

Jang