• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

Get the default value for an element's attribute

Community Expert ,
Jun 22, 2018 Jun 22, 2018

Copy link to clipboard

Copied

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.

TOPICS
Scripting

Views

519

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Community Expert , Jun 22, 2018 Jun 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]);

       

...

Votes

Translate

Translate
Community Expert ,
Jun 22, 2018 Jun 22, 2018

Copy link to clipboard

Copied

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]);

        }

    }

}

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Jun 22, 2018 Jun 22, 2018

Copy link to clipboard

Copied

LATEST

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

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines