我正在从 div onClick 方法调用 Javascript 函数
<div onClick="sample_1(this)" />
通过这个 sample_1 方法,我动态地创建了一个新的 div,并在该 div 中添加了一个 onclick 事件,并试图传递从 sample_1 函数的参数中获取的“this”的值,但我无法传递'this' 到第二种方法:
function sample_1 (divSelected) {
if (!$(divSelected).attr('disabled')) {
$('div[id=sample_1]').append("<div id='sample_1_1" + categoryID + "' class='selectedActivityCategory' style='background-color:#d9eaf7;' > <img src='../Images/close.png' onclick='sample_2(" + divSelected.value + ");' /> </div>");
}
}
function sample_2(divSelected)
{
/* Some Code */
}
当我查看 IE 开发工具时,这个动态 div“sample_1_1”在它的 onClick 方法中而不是传递对象 divSelected 值,它只是写:
sample_2([object HTMLDivElement]);
如何将对象 divSelected 从 sample_1 传递到 sample_2?
我正在尝试访问第一个 div 的引用,它正在调用并将其引用作为 this 传递给方法 sample_1_1,然后我正在创建一个新的 div 和该创建的 div 的 onclick 事件,我正在尝试传递相同的引用在 sample_1_1 方法中创建的 div 的第一个 div 的 onclick 方法。
最佳答案
我不明白你想做什么。常规 Javascript this
没有 value
属性(property)。
如果你试图获取 div 的内容,你就混淆了 this
和 $(this)
,因为通过 JQuery,您可以获取 div 的内容(不是通过 value
)而是通过执行 $(this).html()
.
所以一个可能的解决方案是这样的:
<div id="yourdiv">Content...</div>
$(document).ready(function() {
$('#yourdiv').click(function() {
sample_1($(this));
});
});
function sample_1(div_selected) {
alert("Contents are: " + div_selected.html());
}
我给你做了一个小例子here ...
关于javascript - 无法将 'this' 值从一个 javascript 函数传递到另一个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10205609/