Home > Net >  How to check if element has any attributes in it?
How to check if element has any attributes in it?

Time:01-17

I'm trying to make a conditional checker check whether the element has any attributes or not.

var result = parentElm.hasAttribute(); i tried using this but I'm not sure I want a specific attribute by name, I just want to check whether the element has any attributes or attribute like length, size, or idk.

copyFormatCommand.js

    const model = this.editor.model;
    const selection = model.document.selection;
    const parentElm = selection.focus.parent;
    this.isEnabled = !!parentElm;
  

Here is the HTML I'm using to test if there are multiple nested elements and want to check whether the textNode's parent element has any attributes HTML

<p style="font: 11pt Times New Roman, Times, Serif; margin: 0;" xvid="c0fc3b7176d15af5d8c5c488a7fa675e"><span xvid="6f8db94eb5824fc90d39a2d9a127a98d">Annual Fund Operating Expenses</span></p>
<p style="font: 11pt Times New Roman, Times, Serif; margin: 0;" xvid="c0fc3b7176d15af5d8c5c488a7fa675e">
    <span xvid="6f8db94eb5824fc90d39a2d9a127a98d"><span xvid="1">hello</span></span>
</p>
<p>hello</p>

CodePudding user response:

You can use the element.attributes property to get attributes. MDN has an example https://developer.mozilla.org/en-US/docs/Web/API/Element/attributes#enumerating_elements_attributes

   function listAttributes() {
     var element = document.getElementById("myElementId");
     var result = document.getElementById("result");

     // First, let's verify that the paragraph has some attributes
     if (element.hasAttributes()) {
       var attrs = element.attributes;
       var output = "";
       for(var i = attrs.length - 1; i >= 0; i--) {
         output  = attrs[i].name   "->"   attrs[i].value;
       }
       result.value = output;
     } else {
       result.value = "No attributes to show";
     }
   }

CodePudding user response:

You can do something like this. If the element has more than one attribute (since id is already one) returns true otherwise false.

function hasAttributes(id) {
 const attr = document.getElementById(id)
 
 if (attr.attributes.length > 1) {
   return true
 } else {
   return false
 }
}

CodePudding user response:

The Object.keys() method returns an array of a given object's own enumerable property names, iterated in the same order that a normal loop would.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys

  •  Tags:  
  • Related