我当前正在将按钮上的ID传递给函数。 我想从使用按钮切换为在jQuery表中使用td(一旦我学会了如何操作)。 我想更改为使用类,因为我想使一行中的每个td都可单击。 行中的每个td都会将完全相同的变量传递给该函数。
因此,一行中的每个td都将与按钮完全相同。 这意味着我要使td可单击并调用该函数。 所有的td都将具有相同的ID(在上面的示例中是明确的),并且我读到不好的做法是多次使用相同的ID,并且稍后在我的jQuery代码中可能会出现问题。我确实读过,可以多次使用一个类,因此可以尝试进行更改。
例如,一个按钮的设置如下:
<input type="button" id="clear" style="width:110px;" onclick="return SetShift(this.id)" value="Clear" />
SetShift函数为:
function SetShift(id) {
// Gets/passes the workday shift to/from the localStorage.
const targetStateValue = localStorage.getItem('shiftstatus');
if (targetStateValue === null) {
localStorage.setItem('shiftstatus', id);
} else {
localStorage.setItem('shiftstatus', id);
}
}
我试图将id更改为class,但是出现以下错误:
Uncaught SyntaxError: Unexpected token class
Uncaught ReferenceError: SetShift is not defined
at HTMLInputElement.onclick ((index):36)
答案 0 :(得分:3)
如评论中所述,class
是JavaSript中的保留名称(请参见this)
您可以执行以下操作:
function SetShift(evt) {
console.log('className', evt.target.className);
}
<button class="clear" onclick="SetShift(event)">
Click me
</button>
请注意,如果您有多个课程,则需要使用classList.contains
答案 1 :(得分:3)
是否可以将类传递给Javascipt函数?
是的,您可以使用className属性来做到这一点:
function setShift(className) {
console.log(className);
}
<table>
<tr>
<td class="first" onclick="setShift(this.className)">First</td>
<td class="second" onclick="setShift(this.className)">Second</td>
<td class="third" onclick="setShift(this.className)">Third</td>
</tr>
<table>