当var等于div值时发出警报

时间:2012-03-08 23:31:17

标签: javascript html

我正在尝试在我的javascript var等于div值时显示提醒消息,这是我在这里尝试的内容:

function checkmydiv() {
    var ElementCssClass = document.getElementById("Target");
    if (ElementCssClass == "hello")
    {
        alert("the div has a value");
    }
​}​

这是我的HTML代码

<div id="Target" >hello</div>

<input type="button" value="bader" onclick = "checkmydiv();" />​

我不知道哪里出错了,单击按钮bader时没有弹出窗口

感谢所有帮助:)

2 个答案:

答案 0 :(得分:4)

您需要从该元素中获取文本内容。现在,您正在将对象引用与hello进行比较,这显然不起作用。

if (ElementCssClass.textContent == "hello") {
}

是您正在寻找的。

一句话:所有现代浏览器(=最新版本)都支持.textContent。但是,IE的旧版本可能无法识别该属性。所以你可能想做像

这样的事情
var myText = ElementCssClass.textContent || ElementCssClass.text;

然后将myText的值与hello进行比较,或者只使用ElementCssClass.innerHTML。我更喜欢以前的解决方案,因为使用.innerHTML可能会让你在另一个场景中遇到麻烦。

答案 1 :(得分:2)

问题是变量ElementCssClass现在是DOM节点/对象,而不是字符串;您需要使用innerHTML,或者,如果支持,innerTexttextContent

function checkmydiv() {
    var ElementCssClass = document.getElementById("Target").innerHTML;

    if (ElementCssClass == "hello") {
        alert("the div has a value");
    }
}​

JS Fiddle demo

另外,只是为了良好的练习,我可能会建议远离内嵌JavaScript:

function checkmydiv() {
    var ElementCssClass = document.getElementById("Target");

    if (ElementCssClass.innerHTML == "hello") {
        alert("the div has value");
    }
}

var input = document.getElementsByTagName('input');
for (var i = 0, len = input.length; i < len; i++) {
    if (input[i].value == 'bader') {
        input[i].onclick = function() {
            checkmydiv();
        }
    }
}​

JS Fiddle demo

为了减少硬编码元素/文本内容以进行比较的需要,您可以将参数传递给函数:

function checkmydiv(id, str) {
    var ElementCssClass = document.getElementById(id);

    if (ElementCssClass.innerHTML == str) {
        alert("the div has value");
    }
    else {
        alert("the div does not have the value.");
    }
}

var input = document.getElementsByTagName('input');
for (var i = 0, len = input.length; i < len; i++) {
    if (input[i].value == 'bader') {
        input[i].onclick = function() {
            checkmydiv('Target', 'hello');
        }
    }
    else if (input[i].value == 'bilder') {
        input[i].onclick = function() {
            checkmydiv('Target', 'some other string');
        }
    }
}​

JS Fiddle demo

参考文献: