如何使用;这";在javascript中?这是为了什么
我浏览了很多网站,但学习速度很慢,我无法理解如何使用;这";在javascript中?这是为了什么,javascript,Javascript,我浏览了很多网站,但学习速度很慢,我无法理解这个的正确含义,请澄清我的疑问 <input type='checkbox' name="checkbox[]" onclick="whole_delete(this)" id="checkbox[$id]" value="<?php echo $store['id'];?>"/> function whole_delete(source) { checkboxes = document.getElementsByN
这个的正确含义,请澄清我的疑问
<input type='checkbox' name="checkbox[]" onclick="whole_delete(this)" id="checkbox[$id]" value="<?php echo $store['id'];?>"/>
function whole_delete(source) {
checkboxes = document.getElementsByName("checkbox[]");
for(var i=0, n=checkboxes.length;i<n;i++) {
checkboxes[i].checked = source.checked;
}
}
此
引用正在执行代码的当前上下文。在您的复选框示例中,this
引用该复选框,因此当您将this
传递给整个_delete函数时,它来自的特定复选框将被传入并命名为source
。然后,下面的代码检查是否选中了该复选框
如果页面上有20个复选框,它们都可以使用onclick=“whole_delete(this)”
,而this
将始终将引用传递给事件来源的特定复选框。让我们以此列表为例:
<label>Album 1. Delete all? <input type="checkbox" onclick="whole_delete(this)"></label>
<ul>
<li>Photo 1. Delete? <input type="checkbox"></li>
<li>Photo 2. Delete? <input type="checkbox"></li>
<li>Photo 3. Delete? <input type="checkbox"></li>
<li>Photo 4. Delete? <input type="checkbox"></li>
</ul>
在本例中,此
是对您刚才单击的复选框的引用。您正在将HtmleElement作为参数传递给javascript函数whole\u delete
。.checked
是一个属性,指示复选框是否选中
因此,当调用该函数时,它将查找页面中的所有复选框,并使其与刚才单击的相册复选框相同。如果选中,将检查所有照片。如果未选中,则将取消选中所有照片。此构造是对当前对象上下文的引用。当程序的上下文在整个执行过程中发生变化时,它实际指向的是变化
在您的例子中,它是对表示单击的特定复选框的JavaScript对象的引用。当然,如果您稍后单击另一个复选框,它将更改为指向该对象,因为上下文已更改
source
则是表示复选框的domeElement&选中了一个属性,该属性的值为true或false,具体取决于复选框是否选中
有关DOMElememts的详细信息,请参见“this”是您关注的对象/元素。@hicurin:$
是jquery(和其他)中的关键字/fn抱歉!但是我想避免使用英语中的“this”一词:如果您想区分英语中的this和JavaScript中的this,请使用code(`this`
)标记。
onclick="whole_delete(this)