Javascript 如何在变量中连接文本和图像
您好,首先我是java脚本的基础,我有一个在div上的鼠标,每个div 包含沿图像的信息。问题是我想把文本和图像结合起来 在一个变量中,每当我将鼠标悬停在每个div上时,都会显示图像上的信息 应该像我为他们每个人做的那样改变 问题在于如何在变量中组合文本和图像 但我不知道怎么做这是代码:Javascript 如何在变量中连接文本和图像,javascript,Javascript,您好,首先我是java脚本的基础,我有一个在div上的鼠标,每个div 包含沿图像的信息。问题是我想把文本和图像结合起来 在一个变量中,每当我将鼠标悬停在每个div上时,都会显示图像上的信息 应该像我为他们每个人做的那样改变 问题在于如何在变量中组合文本和图像 但我不知道怎么做这是代码: <script type="text/javascript"> function ENGshowElements(){ var Engineering = "Your
<script type="text/javascript">
function ENGshowElements(){
var Engineering = "Your In Engineering Section <br> <img src='a.jpg'>";
document.getElementById("contents").innerHTML = Engineering;
}
function CONshowElements(){
var Construction = "Your In Construction Section";
document.getElementById("contents").innerHTML = Construction;
}
function LLCshowElements(){
var LLCDubia = "Your In LLC Dubia Section";
document.getElementById("contents").innerHTML = LLCDubia;
}
function WASshowElements(){
var WasteManagement = "Your In Waste Management Section";
document.getElementById("contents").innerHTML = WasteManagement;
}
function TRAshowElements(){
var Transportation = "Your In Transportation Section";
document.getElementById("contents").innerHTML = Transportation;
}
function LOGshowElements(){
var Logistics = "Your In Logistics Section";
document.getElementById("contents").innerHTML = Logistics;
}
</script>
<div class="firstbox" id="Engineering" onmouseover="ENGshowElements(); return false; " >Engineering</div>
<div class="secbox" id="Construction" onmouseover="CONshowElements(); return false; ">Construction</div>
<div class="thirdbox" id="LLCDubia" onmouseover="LLCshowElements(); return false; " >LLC Dubia</div>
<div class="fourthbox" id="WasteManagement" onmouseover="WASshowElements(); return false; " >Waste Management</div>
<div class="fivthbox" id="Transportation" onmouseover="TRAshowElements(); return false; " >Transportations</div>
<div class="sixthbox" id="Logistics" onmouseover="LOGshowElements(); return false; " >Logistics</div>
函数ENGshowElements(){
var Engineering=“您所在的工程部门
”;
document.getElementById(“contents”).innerHTML=Engineering;
}
函数CONshowElements(){
var Construction=“您所在的施工区”;
document.getElementById(“contents”).innerHTML=Construction;
}
函数LLCshowElements(){
var LLCDubia=“您在Dubia区的有限责任公司”;
document.getElementById(“contents”).innerHTML=LLCDubia;
}
函数WASshowElements(){
var WasteManagement=“您在废物管理部分”;
document.getElementById(“contents”).innerHTML=废物管理;
}
函数TRAshowElements(){
var Transportation=“您所在的运输部门”;
document.getElementById(“contents”).innerHTML=传输;
}
函数LOGshowElements(){
var Logistics=“您所在的物流部门”;
document.getElementById(“contents”).innerHTML=Logistics;
}
工程类
建设
杜比亚有限责任公司
废物管理
运输
后勤
=>jsfiddle
为了把事情弄清楚,并指出你可能走错了方向,这里有一个更好的选择。这可能主要是使用css完成的,但这里有一些更容易维护的东西
我们将在每个按钮上只使用一次单击功能,而不是使用多个触发器。每个按钮都有一个“数据目标”,它是另一个元素的id
我们的标记将如下所示:
<html>
<head>
<style>
#source { display: none; }
</style>
<script>
// Our click event
function clickEvent (ev) {
// Get the target in the dom
// While checking more about event should be good because
// Target may not be the element you're looking for in some cases.
var target = ev.target.dataset['target'];
var obj = document.getElementById(target);
// change the content with the one found
document.getElementById('content').innerHTML = obj.innerHTML;
}
function loaded() {
var docs = document.getElementsByClassName("btn");
// Transform to array
docs = Array.prototype.slice.call(docs);
docs.forEach(function(elem) {
// Assign click event to all elements
elem.onclick = clickEvent;
});
}
</script>
</head>
<body onload="loaded()">
<div>
<button class="btn" data-target="Engineering-Source">Engineering</button>
...
</div>
<div id="content"></div>
<div id="source">
<div id="Engineering-Source">
Your In Engineering Section <br> <img src='a.jpg'>
</div>
...more after
</div>
</body>
</html>
#源{显示:无;}
//我们的点击活动
功能点击事件(ev){
//在dom中获取目标
//而检查更多关于事件的信息应该是好的,因为
//在某些情况下,目标可能不是您要查找的元素。
var target=ev.target.dataset['target'];
var obj=document.getElementById(目标);
//用找到的内容更改内容
document.getElementById('content').innerHTML=obj.innerHTML;
}
函数加载(){
var docs=document.getElementsByClassName(“btn”);
//转换为数组
docs=Array.prototype.slice.call(docs);
docs.forEach(功能(要素){
//将单击事件指定给所有图元
elem.onclick=单击事件;
});
}
工程类
...
您在工程部门的职位
……以后会有更多
我添加了评论,但这是一个很好的方法。避免“vanillajs”可能不是一件坏事,但是。在vanillajs中,这样做不需要太多的痛苦
也就是说,这里有一些理由说明为什么它是好的。内容保留在html中,而不是javascript中。如果一个网络蜘蛛会下载你的页面,那么它在javascript源代码中查找html内容而不是文本的可能性就大得多
在我的示例中,一些东西可能不存在于旧浏览器中,如“dataset”和“forEach”
注
也就是说,一种纯粹的“css”方式是可能的,但可能会使文档的结构更难编辑。另一方面,有多种方法可以混合使用css和js来保持最少的js,并尽可能多地使用html/css来保持样式一致
无论如何,我上面的例子应该在一些浏览器中工作,给出一个方法。如果您还不熟悉Javascript,我建议您使用jQuery或prototype之类的库。上面的代码不一定会出现在产品中 演示:
HTML:
<div class="firstbox" id="Engineering">Engineering</div>
<div class="secbox" id="Construction">Construction</div>
<div class="thirdbox" id="LLCDubia">LLC Dubia</div>
<div class="fourthbox" id="WasteManagement">Waste Management</div>
<div class="fivthbox" id="Transportation">Transportations</div>
<div class="sixthbox" id="Logistics">Logistics</div>
<div id="contents"></div>
document.getElementById('Engineering').onmouseover = ENGshowElements;
document.getElementById('Construction').onmouseover = CONshowElements;
document.getElementById('LLCDubia').onmouseover = LLCshowElements;
document.getElementById('WasteManagement').onmouseover = WASshowElements;
document.getElementById('Transportation').onmouseover = TRAshowElements;
document.getElementById('Logistics').onmouseover = LOGshowElements;
function ENGshowElements() {
var Engineering = "Your In Engineering Section <br> <img src='a.jpg'>";
document.getElementById("contents").innerHTML = Engineering;
}
function CONshowElements() {
var Construction = "Your In Construction Section";
document.getElementById("contents").innerHTML = Construction;
}
function LLCshowElements() {
var LLCDubia = "Your In LLC Dubia Section";
document.getElementById("contents").innerHTML = LLCDubia;
}
function WASshowElements() {
var WasteManagement = "Your In Waste Management Section";
document.getElementById("contents").innerHTML = WasteManagement;
}
function TRAshowElements() {
var Transportation = "Your In Transportation Section";
document.getElementById("contents").innerHTML = Transportation;
}
function LOGshowElements() {
var Logistics = "Your In Logistics Section";
document.getElementById("contents").innerHTML = Logistics;
}
工程
建设
杜比亚有限责任公司
废物管理
运输
后勤
JS:
<div class="firstbox" id="Engineering">Engineering</div>
<div class="secbox" id="Construction">Construction</div>
<div class="thirdbox" id="LLCDubia">LLC Dubia</div>
<div class="fourthbox" id="WasteManagement">Waste Management</div>
<div class="fivthbox" id="Transportation">Transportations</div>
<div class="sixthbox" id="Logistics">Logistics</div>
<div id="contents"></div>
document.getElementById('Engineering').onmouseover = ENGshowElements;
document.getElementById('Construction').onmouseover = CONshowElements;
document.getElementById('LLCDubia').onmouseover = LLCshowElements;
document.getElementById('WasteManagement').onmouseover = WASshowElements;
document.getElementById('Transportation').onmouseover = TRAshowElements;
document.getElementById('Logistics').onmouseover = LOGshowElements;
function ENGshowElements() {
var Engineering = "Your In Engineering Section <br> <img src='a.jpg'>";
document.getElementById("contents").innerHTML = Engineering;
}
function CONshowElements() {
var Construction = "Your In Construction Section";
document.getElementById("contents").innerHTML = Construction;
}
function LLCshowElements() {
var LLCDubia = "Your In LLC Dubia Section";
document.getElementById("contents").innerHTML = LLCDubia;
}
function WASshowElements() {
var WasteManagement = "Your In Waste Management Section";
document.getElementById("contents").innerHTML = WasteManagement;
}
function TRAshowElements() {
var Transportation = "Your In Transportation Section";
document.getElementById("contents").innerHTML = Transportation;
}
function LOGshowElements() {
var Logistics = "Your In Logistics Section";
document.getElementById("contents").innerHTML = Logistics;
}
document.getElementById('Engineering').onmouseover=ENGshowElements;
document.getElementById('Construction').onmouseover=CONshowElements;
document.getElementById('LLCDubia')。onmouseover=LLCshowElements;
document.getElementById('WasteManagement').onmouseover=WASshowElements;
document.getElementById('Transportation').onmouseover=TRAshowElements;
document.getElementById('Logistics').onmouseover=LOGshowElements;
函数ENGshowElements(){
var Engineering=“您所在的工程部门
”;
document.getElementById(“contents”).innerHTML=Engineering;
}
函数CONshowElements(){
var Construction=“您所在的施工区”;
document.getElementById(“contents”).innerHTML=Construction;
}
函数LLCshowElements(){
var LLCDubia=“您在Dubia区的有限责任公司”;
document.getElementById(“contents”).innerHTML=LLCDubia;
}
函数WASshowElements(){
var WasteManagement=“您在废物管理部分”;
document.getElementById(“contents”).innerHTML=废物管理;
}
函数TRAshowElements(){
var Transportation=“您所在的运输部门”;
document.getElementById(“contents”).innerHTML=传输;
}
函数LOGshowElements(){
var Logistics=“您所在的物流部门”;
document.getElementById(“contents”).innerHTML=Logistics;
}
看在上帝的份上,使用css!您可以使用图片等将所有内容添加到页面中,使用javascript切换类以显示/隐藏某些元素。你的意思是“你是”/“你是”而不是“你的”。