如何在函数中有一个动态变量,而不将其链接到变化的变量
How to have a dynamic variable in a function without linking it to a changing variable
很抱歉有这个标题,但我不确定这个问题的正确术语是什么。我正在尝试使用JavaScript中的for循环动态生成一个可点击元素表。单击每个元素时,都应该触发相同的函数,但参数不同。在我的代码中,我正在设置onClick
函数,如下所示:
elementArray[i].onClick = function() { clickFunction(i) };
然而,当我这样做时,clickFunction
只是取i
当前设置的值,而不是我设置onClick
函数时的值,这正是我想要的。有什么想法吗?
当我收到你的问题时,你想要一个具有可点击元素的表,用diff参数调用相同的函数。[如果不是你的问题,请告诉我]
因此,取i(索引或行号)将是该函数的参数。
HTML:
<table id='myTable'></table>
Javascript:
for(i = 9; i >= 0; i--) {
var table = document.getElementById("myTable");
// Create an empty <tr> element and add it to the 1st position of the table:
var row = table.insertRow(0);
// Insert new cells (<td> elements) at the 1st and 2nd position of the "new" <tr> element:
var cell = row.insertCell(0);
// Add some text to the new cells:
cell.innerHTML = "<input type='button' onclick='callIt("+i+")'";
}
function callIt(index) {
alert(index);
}
我正在考虑你们想点击按钮。希望它能帮助你。
您可以在w3schools 上获得更多信息
这是@Bhojendra Nepal的"重复问题"的一个版本,适用于您的问题。使用此HTML:
<div class="element-0">0</div>
<div class="element-1">1</div>
<div class="element-2">2</div>
这个脚本:
var elementArray = [];
var creatFunc = function($this,i){
return function() {
console.log(i);
$this.html(i + 1);
if (i>1) i++;
};
};
for (var i = 0; i < 3; i++) {
elementArray[i] = $('.element-' + i);
elementArray[i].click( creatFunc( elementArray[i] , i) );
}
通过在一个单独的函数中创建函数,我们隔离了变量。我添加了"if(I>1)I++;"来显示新函数如何保留自己的变量并可以递增(不断点击第三个div可以看到数字不断增加)。
这是一个jsfiddle:
https://jsfiddle.net/mckinleymedia/1cksb8ky/
我希望这能有所帮助。
哦,我添加了jQuery。我不确定如何在普通javascript中实现这一点。
相关文章:
- ReactJS映射:如何仅在url变量不为空时呈现html链接
- 为什么window.open不打开一个以变量形式给出的链接
- 如何在jQuery中将链接函数分配给变量
- Javascript链接和变量替换
- 链接中有php变量的Javascript打开窗口
- 如何超链接在新选项卡中打开并携带一些变量的选择标记
- 如何通过分配单个变量来减少此脚本中的链接数
- 如何在单击链接后将局部变量发送到部分呈现
- 将链接 URL 变量传递给 javascript
- HTML 链接变量
- Angular2/Typescript:从链接可观察函数访问实例变量
- 如何将字符串与变量连接起来/传递到链接
- 使 PHP 变量成为链接
- 我需要在悬停时使用选择器,在悬停外使用变量集来找到特定的链接
- 如何在动态生成的链接的onClick事件的函数中传递JavaScript变量
- JavaScript-更改一组包含特定文本和变量ID元素的链接
- 如果php变量链接为null,则禁用href标记
- 如何在javascript中为load函数提供变量链接
- Javascript字符串变量链接
- Facebook Javascript共享UI包含get变量链接