Javascript 更改DIV的内容:不同的跨距部分
假设我有以下DIV:Javascript 更改DIV的内容:不同的跨距部分,javascript,html,innerhtml,Javascript,Html,Innerhtml,假设我有以下DIV: <div id=div5><span id="name">Hertog-Jan</span><span id="price"></span></div><br> 但是,输出将始终为Hertog Jan(不显示价格)。我做错什么了吗?我个人认为这与innerHMTL.price有关,但我不确定。我以前有 <div id=div5>Hertog-Jan</div><
<div id=div5><span id="name">Hertog-Jan</span><span id="price"></span></div><br>
但是,输出将始终为Hertog Jan(不显示价格)。我做错什么了吗?我个人认为这与innerHMTL.price有关,但我不确定。我以前有
<div id=div5>Hertog-Jan</div><br>
Hertog-Jan
但后来我不得不添加一个选项来按名称、价格等进行排序。因此我认为将名称和价格信息放在两个单独的框中会很有用(你知道的)
你们中的一些人可能已经注意到,value*=0.01现在基本上是“关闭”的,这是因为有时候,如果一个数字(比如626)乘以0.01,它不会给我6.26,而是给我6.260000000001。有办法解决这个问题吗?我希望1到10之间的随机数(包括1,不包括10)精确舍入到两位小数(当然,它应该始终是两位小数)。只要尝试使用
document.getElementById(it).innerHTML += ": €" + value;
您不需要将id名称放在属性的末尾,因为.price不是.innerHTML的属性,如果只使用原始Javscript(我习惯于一直使用jquery)修复代码需要一些时间,则.price不是.innerHTML的属性 只需忽略“console.log”即可进行调试 这样做的目的是:首先需要解析一个id名称。在本例中,您的
div5
。然后它用class=price
搜索元素(请参阅:querySelector(…'.price')
)
然后是随机数(无论你需要什么:D)
接下来,它使用parseInt()
获取旧值,这样就不会得到字符串
最后,它将price-
的HTML内容更改为oldValue=value
查看JSFIDLE以了解更多信息
希望我能帮助您我认为您不需要innerHTML。price,price不是innerHTML的属性,它是您在中使用的id。getElementById,just。innerHTML会很好。页面上应该只有唯一的id。如果只有一个“price”,您只需执行
document.getElementById('price').innerHTML=
,否则您将需要一种为每个价格容器创建唯一ID的方法(div5price
)。您应该使用唯一的id。由于通常没有一个价格,您应该将id=“name”
更改为相同的class=“price”
。使用class=“name”
2。您的id中缺少“
。它应该是Hertog Jan
而不是添加的”
3。.price
没有任何意义,getElementById
也没有任何意义。您需要的是[document.querySelector()]
()3。你不能简单地使用+=”:€“+值代码>您不能在字符串值中添加数字。感谢您的快速回复。我已将id
更改为class
,并添加了“
。div现在是Hertog Jan:€
应该插入价格的部分现在是document.getElementById(it).price=value;
,但我不理解你所说的[document.querySelector()]
(我对HTML还不是很有经验)。这种将数字放入“价格”的方法允许吗?很好:D只会产生,例如,Hertog Jan:€NaN
。你只需做parseInt(elem.innerHTML
然后elem.innerHTML=value;
,然后它就像一个符咒:)很高兴听到你能得到它:D作为应答的标签
,对于我的应答将是非常好的
<div id=div5>Hertog-Jan</div><br>
document.getElementById(it).innerHTML += ": €" + value;
function price (it) {
var elem = document.querySelector('#'+it+' .price');
var value = (Math.round(((Math.random() * 900) + 100)));
console.log(value+' ->random Number');
/* value *= 0.01; */
var oldValue = parseInt(elem.innerHTML);
elem.innerHTML = oldValue + value +' €';
}