0

假设我有一些 div,其 ID 为“div1”、“div2”、“div3”等。

我现在正在做的是:

document.getElementById('#div1').value='something';
document.getElementById('#div2').value='something';
document.getElementById('#div3').value='something';

但如果我有 30 个 div,这会很烦人。我正在尝试使用“for”,但它不起作用:

for(var i=1; i<31; i++) {
    document.getElementById('#div'+i).value='something';
}

当我使用 .val() 函数(jQuery)时,我得到了同样的结果。

在这种情况下,我做错了什么,伙计们?:)

4

3 回答 3

2

You have a few things wrong. first, don't use # in getElementById(). second is that div elements doesn't have .value attribute, use innerHTML instead.. the third is that you're trying to access multiple elements by their id instead of creating a class shared by all of them. Code example:

HTML:

<div id="div1" class="myDiv"></div>
<div id="div2" class="myDiv"></div>
<div id="div3" class="myDiv"></div>
<div id="div4" class="myDiv"></div>
<div id="div5" class="myDiv"></div>
<div id="div6" class="myDiv"></div>
...

jQuery: (tagged in question - easiest example)

$(function(){
    $('.myDiv').text('something');
});
于 2013-07-07T15:32:07.940 回答
0

你可以做这样简单的事情:

<html>
<head>
    <title>Sample</title>
    <script type="text/javascript">
        function textDiv() {
            var totalDivs = document.getElementsByTagName("div").length 
            for(var i =0; i<totalDivs; i++)
            { 
                document.getElementById("div" + [i]).innerHTML = "Some Thing as a Text"

            }

        }
    </script>
</head>
<body onload="textDiv();">
    <div id="div0"></div>
    <div id="div1"></div>
    <div id="div2"></div>
    <div id="div3"></div>
    <div id="div4"></div>
</body>
</html>
于 2013-07-07T15:48:33.380 回答
0

您可以使用 jquery 每个函数,但首先您需要声明要为其分配值的 div ID 数组。

jQuery.each( [ "one", "two", "three", "four", "five" ], function() {
$('#' + this).text('value');
});

或者正如 Yotam 所说,你可以给一个普通的类,然后写

$('.className').text('value');
于 2013-07-07T15:34:41.860 回答