getElementById()的Javascript简写语法不起作用

时间:2012-06-27 05:04:52

标签: javascript syntax shorthand

我找到了关于此https://stackoverflow.com/a/6398848/1406888 javascript简写的上一个问题的答案,但它对我不起作用。我不明白它,因为当我在firefox开发人员的控制台中使用相同的简写时,它可以工作。

以下是我正在使用的代码的简短示例

<div id="list1">
<li>pres</li>
<li>mike</li>
<li>camel</li>
<li>week</li>
</div>

<p></p>
<div id="list2">
<li>time</li>
<li class="test">era</li>
<li>people</li>
<li>life</li>
</div>

<p></p>
<div id="list3">
<li>time</li>
<li class="test">era</li>
<li>people</li>
<li>life</li>
</div>

<script type="text/javascript">

var testId = document.getElementById("list1");
testId.style.borderStyle="solid";
$("#list2").style.borderStyle="solid";

$("list3").style.borderStyle="solid";

</script>

唯一有效的是list1边框。其他的失败了。有人可以纠正我。

我现在有一个工作模板。这是我的代码:

<div id="list1">
<li>pres</li>
<li>mike</li>
<li>camel</li>
<li>week</li>
</div>

<p></p>
<div id="list2">
<li>time</li>
<li class="test">era</li>
<li>people</li>
<li>life</li>
</div>

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">

var testId = document.getElementById("list1");
testId.style.borderStyle="solid";
//$("#list2").style.borderStyle="solid";   this does not work
$("#list2").css("border-Style","solid");   this works.
</script>

就这样我直截了当。没有替代getElementById ???我认为这是一个可互换的简写,但在我的例子中它只适用于JQuery简写的.css属性。

7 个答案:

答案 0 :(得分:3)

有时候当我只想使用$作为document.getElementById的简写而不实际需要主要javascript库的功能时,我只会在页面中抛出这个:

function $(a){return document.getElementById(a);}

节省了大量的打字。

答案 1 :(得分:0)

你需要有一些库来提供这个快捷方式(比如jQuery)。它不是内置于核心语言或浏览器中。

此外,对于jQuery,它将是$('#list3')(您可以使用各种选择器,而不仅仅是节点ID)。

答案 2 :(得分:0)

您需要在页面上包含JQuery才能使用此表示法。

答案 3 :(得分:0)

您在此处描述的语法需要jQuery javascript库。您必须下载并导入库,或者直接链接到HTML中的jQuery代码库,然后才能使用它。将以下行添加到HTML文件的顶部:

<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>

答案 4 :(得分:0)

附加jquery库,$不在核心功能中 -

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">

var testId = document.getElementById("list1");
testId.style.borderStyle="solid";
$("#list2").style.borderStyle="solid";

$("list3").style.borderStyle="solid";

</script>

或者如果你难以JS那么这样做----

var testId1 = document.getElementById("list1");
var testId2 = document.getElementById("list2");
var testId3 = document.getElementById("list3");
testId1.style.borderStyle="solid";
testId2.style.borderStyle="solid";
testId3.style.borderStyle="solid";

答案 5 :(得分:0)

IMO:你需要在jquery

中这样做
$("#list2").css("border-Style","solid")

$("#list3").css("border-Style","solid")

并确保在jquery中,如果您正在访问带有id的元素,则使用Id添加#

答案 6 :(得分:0)

尝试使用jquery css方法设置边框样式。

<script type="text/javascript">
  $(document).ready(function(){
    $("#list2").css("border-style","solid");
  });
</script>