.value返回undefined而不是正确的html值

时间:2014-05-03 18:43:43

标签: javascript html

此函数将值保留为未定义,因此我将其抽象为这个简单的HTML结构,但我仍然无法弄清楚它为什么给我undefined的值。

<!DOCTYPE html>
<html>

<head>
    <title></title>
</head>

<body>

    <div id="shoppingCartInner" class="cartItem">
        <div class="col-lg-4" id="0">
            <div class="cartOpenImage" name="openImage"></div>
            <div class="cartOpenImageNumber">
                <label name="openNumberLabel">Item Number:</label>
                <div name="openNumberValue">0008</div>
            </div>
            <div class="cartOpenItemSupplier">
                <label name="openSupplierLabel">Supplier:</label>
                <div name="openSupplierValue"></div>
            </div>
            <div class="cartOpenItemDetails">
                <div name="openDetails">Description: Test ITEM</div>
            </div>
            <div class="cartOpenItemMfr">
                <label name="openMfrLabel">MFR / MFR Part Number:</label>
                <div name="openMfrValue">/</div>
            </div>
            <div class="cartOpenItemQuantity">
                <label name="openQuantityLabel">Quantity:</label>
                <div name="openQuantityValue">3</div>
            </div>
            <div class="cartDelete">
                <div onclick="removeItem(this);" class="btn btn-red" id="btn-0" value="1">Remove Item</div>
            </div>
        </div>
    </div>

</body>

</html>
<script>
function removeItem(el) {
    var y = el.value;
    alert(y);
};
</script>

详细信息,因为stackoverflow现在允许我提交

2 个答案:

答案 0 :(得分:1)

它很简单:
div不是输入元素,因此它们没有值属性 要从该元素获取值,您有两个选择:
1)将元素从div更改为:

<input type="button" ...

2)尝试使用getAttribute(&#34; value&#34;)方法访问该属性,例如:

function removeItem(el) {
    var y = el.getAttribute("value");
    alert(y);
};

但&#34;对&#34;这样做会使用输入元素

答案 1 :(得分:1)

你应该使用

var y = el.getAttribute("value");

Fiddle