为什么这不适用于Firefox,Chrome或Safari,而是IE?

时间:2012-09-22 02:06:20

标签: javascript html

我是一名学生,无法解决为什么这不起作用。

function addedToCart(x)
            {
            alert( x.value + " has been added to cart\nPress OK to continue.");
            }


<a href="#" value="blue circle" onclick="addedToCart(this)">

感谢任何帮助!

3 个答案:

答案 0 :(得分:5)

因为value不是锚<a>有效属性。它旨在用于表单元素,例如inputselect

更合适(和有效的标记)解决方案是使用HTML5 data-*属性,然后按照@Jeffrey Sweeney的建议使用getAttribute获取它:

<a href="#" data-value="blue circle" onclick="addedToCart(this)">

然后:

alert( x.getAttribute("data-value"))

答案 1 :(得分:0)

尝试使用getAttribute功能:

alert( x.getAttribute("value") + " has been added to cart\nPress OK to continue.");

https://developer.mozilla.org/en-US/docs/DOM/element.getAttribute

答案 2 :(得分:0)

2件事value不是<a的原生财产,而您并未以</a>

结束

我希望下面的代码可以帮助您理解一种类似的方法来实现它:

<script>
    function addedToCart(x) {
        alert(x.value + " has been added to cart\nPress OK to continue.");
    }
</script>

<a href="#" onclick="addedToCart(document.getElementById('txt1'))">blue circle</a>
<input type="text" id="txt1" value="some value"/>

IE也有自己解释html的方法,它增加了糟糕更多,因为它强制没有模式