如何使用“;这个“;在javascript中?这样做的目的是什么

how to use the "this " in javascript?what is the purpose of this

本文关键字:这样做 是什么 javascript 何使用 这个      更新时间:2024-02-01

我浏览了很多网站,但学习速度很慢,我无法理解this的正确含义。请澄清我的疑问。。

<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;
  }
}

这里的onclick="whole_delete(this)可以作为whole_delete 中的源进行更改

我很困惑。我不知道来源的价值和来源的含义;请确认我的问题并澄清我的怀疑。是的,我知道我的问题很愚蠢,但请澄清。

让我们以这个列表为例:

<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>

那么,这意味着什么呢?您正在向用户展示一个相册,其中包含照片列表。用户可以检查每个照片名称旁边的输入,以将其标记为删除。由于您不想在删除相簿中的所有照片时强制用户手动检查每张照片,因此您决定添加一个主复选框(相簿旁边的复选框)。当用户单击该复选框时,您的javascript应标记所有照片的"删除"复选框(或取消标记)。

你是怎么做到的?此:

onclick="whole_delete(this)

在这种情况下,this是对您刚刚单击的复选框的引用。您正在将HTMLElement作为参数传递给javascript函数whole_delete.checked是指示是否选中复选框的属性。

因此,当调用该函数时,它将查找页面中的所有复选框,并使其与您刚刚单击的"相簿"复选框相同。如果选中,所有照片都将被选中。如果取消选中,则所有照片都将取消选中。

this引用代码执行的当前上下文。在您的复选框示例中,this引用复选框,因此当您将this传递给whole_delete函数时,它所来自的特定复选框将被传递并命名为source。然后,下面的代码将检查是否选中了该特定复选框。

如果您有一个打开了20个复选框的页面,它们都可以使用onclick="whole_delete(this)",而this将始终将引用传递给事件来自的特定复选框。

this构造是对当前对象上下文的引用。它实际指向的内容在程序执行过程中随着程序上下文的变化而变化。

在您的案例中,它是对JavaScript对象的引用,表示单击的特定复选框。当然,如果您稍后单击不同的复选框,由于上下文发生了更改,它将更改为指向该对象。

则CCD_ 14是表示复选框&选中了一个属性,该属性的值为true或false,具体取决于是否选中该复选框。

有关DOMELEMMTS的更多信息,请参阅https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement

相关文章: