Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改DIV的内容:不同的跨距部分_Javascript_Html_Innerhtml - Fatal编程技术网

Javascript 更改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:

<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 +' €';
}