Javascript 为什么要将文本HTML字符串附加到DOM中?
在元素前加或追加时,它会按字面意思放入文本,而不会以HTML进行编译:Javascript 为什么要将文本HTML字符串附加到DOM中?,javascript,jquery,html,Javascript,Jquery,Html,在元素前加或追加时,它会按字面意思放入文本,而不会以HTML进行编译: var banner ={ 'Format': '90x120cm', 'Value': 35 }; // var premium = { key: values }; function defineProduct(data) { var item = $('span.tooltip')[0]; console.log($('span.tooltip'));
var banner ={
'Format': '90x120cm',
'Value': 35
};
// var premium = { key: values };
function defineProduct(data) {
var item = $('span.tooltip')[0];
console.log($('span.tooltip'));
for(var keys in data){
console.log(keys);
item.append('<div class="item"><div class="left">'+keys+':</div><div class="right ">'+data[keys]+'</div></div>');
}
}
defineProduct(banner);
var横幅={
“格式”:“90x120cm”,
“值”:35
};
//var premium={key:values};
功能定义产品(数据){
var item=$('span.tooltip')[0];
log($('span.tooltip');
for(数据中的var键){
控制台日志(键);
item.append(“”+键+”:“+数据[键]+”);
}
}
定义产品(横幅);
HTML:<div class="three-columns">
<div class="col">
<div class="image-holder">
<a href='' id="premium" class="tooltips">
<img src="" class="premium-img" width="85px" height="79px">
<p class="description">Cartão <br><span style="color: #ffc600;" class="different">premium</span></p>
<span class="tooltip"></span>
</a>
</div>
<!-- Same thing from above different description -->
<!-- ditto -->
</div>
输出:我尝试/使用了什么:
.get()代码>
.prepend(字符串)代码>
.html(字符串)代码>
您在这里使用的是附加一个文本,该文本作为文本节点附加,而不是.text(字符串)
:jQuery#append
var item = $('span.tooltip')[0];
访问jQuery对象中的底层DOM元素。删除[0]
以在其上使用jQuery方法(或将选择集合中的第一个元素作为jQuery对象),或使用。您使用的是附加一个文本,该文本作为文本节点而不是[0]
:jQuery\append
var item = $('span.tooltip')[0];
访问jQuery对象中的底层DOM元素。删除[0]
以在其上使用jQuery方法(或将选择集合中的第一个元素作为jQuery对象)或使用。[0]需要从$('span.tooltip')[0]中删除。它正在尝试访问DOM中不可用的.tooltip“span的第一个子项。[0]需要从$('span.tooltip')[0]中删除。它正在尝试访问“.tooltip”span的第一个子项,该子项在DOM中不可用。而不是[0]
您可以使用:item.append....
:将指定的文本解析为HTML或XML,并将生成的节点插入到DOM树的指定位置item.insertAdjacentHTML('beforeend',....
var横幅={ “格式”:“90x120cm”, “值”:35 }; 功能定义产品(数据){ var item=$('span.tooltip')[0]; //log($('span.tooltip'); for(数据中的var键){ //控制台日志(键); item.insertAdjacentHTML('beforeend',''+keys+':''+data[keys]+''; } } 定义产品(横幅)代码>
而不是
您可以使用:item.append....
:将指定的文本解析为HTML或XML,并将生成的节点插入到DOM树的指定位置item.insertAdjacentHTML('beforeend',....
var横幅={ “格式”:“90x120cm”, “值”:35 }; 功能定义产品(数据){ var item=$('span.tooltip')[0]; //log($('span.tooltip'); for(数据中的var键){ //控制台日志(键); item.insertAdjacentHTML('beforeend',''+keys+':''+data[keys]+''; } } 定义产品(横幅)代码>
使用
代替.eq(0)
中的[0]
asvar项=
返回jQuery对象,并eq
返回原始HTMLDOM元素。或者将DOM元素包装到jQuery对象中:[]
var item=$($('span.tooltip')[0])使用
代替.eq(0)
asvar item=…”中的
[0]
返回jQuery对象,并eq
返回原始HTMLDOM元素。或者将DOM元素包装到jQuery对象中:[]
var item=$($('span.tooltip')[0])代码>。使用insertAdjacentHTML将允许您打开XSS攻击@希瓦姆库马尔是的,你是对的。实际上,XSS也可以通过jQueryAppend实现。我的目的是证明你可以使用纯javascript避免jQuery。使用insertAdjacentHTML可以让你打开XSS攻击@希瓦姆库马尔是的,你是对的。实际上,XSS也可以通过jQueryAppend实现。我的目的是证明您可以使用纯javascript避免jQuery。