         styles.push(config.style)
 
       if config.tagName
-        unless config.parent and key is @parentAttribute
-          element = document.createElement(config.tagName)
-          element.setAttribute(key, value) unless typeof(value) is "boolean"
-          @recordNode(element, offset: position)
+        element = document.createElement(config.tagName)
+        element.setAttribute(key, value) unless typeof(value) is "boolean"
+        @recordNode(element, offset: position)
 
-          if config.parent
-            elements.unshift(element)
-          else
-            elements.push(element)
+        if config.parent
+          elements.unshift(element)
+        else
+          elements.push(element)
 
     if styles.length
       unless elements.length

        before = @createCursorTargetForPosition(position)
        after = @createCursorTargetForPosition(position + 1)

      if @parentAttribute
        @element.insertBefore(left, @element.lastChild) if left?
        @element.lastChild.appendChild(element)
        @element.appendChild(right) if right?

    @text.eachPieceWithPosition (piece, position) =>
      [@previousPiece, @previousAttributes] = [@currentPiece, @currentAttributes]
      [@currentPiece, @currentAttributes] = [piece, piece.getAttributes()]

      if parentAttribute = @findParentAttribute()
        delete @currentAttributes[parentAttribute]

      element = @createElementForCurrentPieceWithPosition(position)
      pieceView = @createChildView(Trix.PieceView, piece, position)
