Trying to turn a String into a HTMLDivElement object. I know how to create a string, I am just unsure how to create the HTMLDivElement.
For example, if I wanted to turn <div id="cardId" class="card c9"></div>
It would also be good to really understand what a HTMLDivElementObject is too.
EDIT:
I also know that there are Universal Attributes such as id(string), style(object), title(string) and className(string).
Below is my function and method. As you can see I try to create the toElement
method. What I need is the method to return an HTMLDivElement object representing the Card. The example of what needs to be returned is as above <div id="cardId" class="card c9"></div>
.
var cardProto = {
// creates the HTML string representing this element
"toString": function (){
var s = this.card.getSuit(), r = this.card.getRank();
var t = "<div class=\"card ";
t += s !== undefined ? s + r : "down";
t += "\" id=\""+ this.id + "\"></div>\n";
return t;
},
"toElement": function () {
}
};
"toElement": function () {
var dummy = document.createElement("div");
dummy.innerHTML = this.toString();
return dummy.children[0];
}
Figured it out guys. to set the Id, I needed to use .id, and .className for the class.
"toElement": function () {
var s = this.card.getSuit(), r = this.card.getRank();
var div = document.createElement('div');
div.id = 'cardId';
div.className = "card " +s+r;
return div;
}
Assuming that you want to convert a string into an element, you can use RegEx to do this:
"toElement": function () {
var string = '<div id="cardId" class="card c9"></div>'
var e = /<(.+?)\s/g.exec(string)[1];
var id = /id="(.+?)"/g.exec(string)[1];
var cls = /class="(.+?)"/g.exec(string)[1];
var element = document.createElement(e);
element.hash = id;
element.className = cls;
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.