Ich habe eine Liste von Attributen im Objekt, die ich einem Element in der Zeichenfolge als Attribut hinzufügen möchte:

var ob_attr = {
  type: 'button',
  'data-action': 'send',
  class: 'sendmessage'
};
var BC = "<div class='col-lg-6'><button>Send</button></div>";
$(BC).find('button').attr(ob_attr);

    //output
    console.log(BC);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Die Konsole sieht immer noch wie der Wert der Variablen BC aus

Ich möchte, dass die Ausgabe wie folgt aussieht:

<div class='col-lg-6'><buton class='sendmessage' data-action='send', type='button'>Send</button></div>
0
james Oduro 7 Feb. 2020 im 19:18

3 Antworten

Beste Antwort

Sie gehen davon aus, dass die Zeichenfolge irgendwie zum HTML-Element wird. Es bleibt eine Zeichenfolge. Sie müssen auf die von Ihnen erstellten Elemente verweisen.

var ob_attr = {
  type: 'button',
  'data-action': 'send',
  class: 'sendmessage'
};
var BC = "<div class='col-lg-6'><button>Send</button></div>";
var elemBC = $(BC)
elemBC.find('button').attr(ob_attr);

//output
console.log(elemBC.html());
console.log(elemBC[0].outerHTML);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
0
epascarello 7 Feb. 2020 im 16:34

Auf diese Weise können Sie eine Zeichenfolge zum Einfügen vorbereiten

var newStr = 'button'
for (const attr in ob_attr) {
  newStr += ` ${attr}="${ob_attr[attr]}"`;
}

Und fügen Sie dann die neue Zeichenfolge wie folgt hinzu

BC.replace('button', newStr)
0
H K 7 Feb. 2020 im 16:47

Versuchen Sie, BC.getelementsbytagname ('button') zu verwenden. Setattribute (Eigenschaft, Wert) auf die gleiche Weise geben Sie alle Attribute an

-1
Fahad Tahir 7 Feb. 2020 im 16:31