Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.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 使元素引用不那么笨重_Javascript_Html - Fatal编程技术网

Javascript 使元素引用不那么笨重

Javascript 使元素引用不那么笨重,javascript,html,Javascript,Html,我是javascript新手,如果这是一个简单的答案,请原谅我。我似乎找不到它。我有一小块脚本,根据段落内容替换文本。很简单。我的问题是,为什么我必须两次将整个参考资料右转?变量是否指向同一事物?有没有更简单的方法 这项工作: <p id="name">Electric City</p> <script type="text/javascript"> var name = document.getElementById("name").innerHT

我是javascript新手,如果这是一个简单的答案,请原谅我。我似乎找不到它。我有一小块脚本,根据段落内容替换文本。很简单。我的问题是,为什么我必须两次将整个参考资料右转?变量是否指向同一事物?有没有更简单的方法

这项工作:

<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;

谢谢!这很有帮助,解释得很好。非常感谢。