Javascript 使元素引用不那么笨重
我是javascript新手,如果这是一个简单的答案,请原谅我。我似乎找不到它。我有一小块脚本,根据段落内容替换文本。很简单。我的问题是,为什么我必须两次将整个参考资料右转?变量是否指向同一事物?有没有更简单的方法 这项工作:Javascript 使元素引用不那么笨重,javascript,html,Javascript,Html,我是javascript新手,如果这是一个简单的答案,请原谅我。我似乎找不到它。我有一小块脚本,根据段落内容替换文本。很简单。我的问题是,为什么我必须两次将整个参考资料右转?变量是否指向同一事物?有没有更简单的方法 这项工作: <p id="name">Electric City</p> <script type="text/javascript"> var name = document.getElementById("name").innerHT
<p id="name">Electric City</p>
<script type="text/javascript">
var name = document.getElementById("name").innerHTML;
if (name == "Electric City") {
document.getElementById("name").innerHTML = "Welcome!";
}
</script>
电气城
var name=document.getElementById(“name”).innerHTML;
如果(名称=“电气城”){
document.getElementById(“name”).innerHTML=“欢迎!”;
}
这并不是:
<p id="name">Electric City</p>
<script type="text/javascript">
var name = document.getElementById("name").innerHTML;
if (name == "Electric City") {
name = "Welcome!";
}
</script>
电气城
var name=document.getElementById(“name”).innerHTML;
如果(名称=“电气城”){
name=“欢迎!”;
}
谢谢大家!
var name = document.getElementById("name").innerHTML;
这行代码从“name”元素(使用其innerHTML
属性)获取值,并将其复制到变量name
。name
变量不引用“name”元素本身
如果要简化代码,可以执行以下操作:
<script type="text/javascript">
var nameElement = document.getElementById("name");
if (nameElement.innerHTML == "Electric City") {
nameElement.innerHTML = "Welcome!";
}
</script>
var namelement=document.getElementById(“名称”);
如果(namelement.innerHTML==“电气城”){
namelement.innerHTML=“欢迎!”;
}
试试这个:
<script type="text/javascript">
var name = document.getElementById("name");
if (name.innerHTML == "Electric City") {
name.innerHTML = "Welcome!";
}
</script>
var elem = document.getElementById("name");
if (elem.innerHTML == "Electric City") {
elem.innerHTML = "Welcome!";
}
var name=document.getElementById(“名称”);
如果(name.innerHTML==“电气城”){
name.innerHTML=“欢迎!”;
}
name
仅保存该值,而不是作为一个整体引用实际元素
您需要抓取元素,然后检查并应用
innerHTML
。在JavaScript中,表示variable=value
不会影响最初引用的变量。说出variable.property=value
确实会影响variable
所指的内容
因此,要简化代码,请执行以下操作:
var element = document.getElementById("name");
if (element.innerHTML == "Electric City") {
element.innerHTML = "Welcome!";
}
试试这个:
<script type="text/javascript">
var name = document.getElementById("name");
if (name.innerHTML == "Electric City") {
name.innerHTML = "Welcome!";
}
</script>
var elem = document.getElementById("name");
if (elem.innerHTML == "Electric City") {
elem.innerHTML = "Welcome!";
}
问题是您有一个对字符串的引用,而不是对保存该字符串的对象的引用。由于字符串是不可变的,因此设置字符串变量的新值只会创建一个全新的字符串,并保留原始字符串(指my your元素)不变。就这么简单
<p id="demo">Electric City</p>
<script>
var str = document.getElementById("demo").innerHTML;
var res = str.replace(/Electric City/gi," Welcome!");
document.getElementById("demo").innerHTML=res;
</script>
电气城
var str=document.getElementById(“demo”).innerHTML;
var res=str.replace(/Electric City/gi,“欢迎!”);
document.getElementById(“demo”).innerHTML=res;
或
var str=document.getElementById(“演示”);
var res=str.innerHTML.replace(/Electric City/gi,“Welcome!”);
str.innerHTML=res;
谢谢!这很有帮助,解释得很好。非常感谢。