无法将“this”值从一个javascript函数传递到另一个JavaScript函数

Unable to pass 'this' value from one javascript function to another?

本文关键字:函数 javascript 一个 JavaScript 另一个 this      更新时间:2023-09-26

我正在从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 的引用,该引用正在调用并将其引用传递给方法 sample_1_1,然后从那里我正在创建该创建的div 的新div 和 onclick 事件,我正在尝试将第一个div 的相同引用传递给sample_1_1方法中创建的div 的 onclick 方法。

我不明白你想做什么。常规的 Javascript this没有value属性。

如果你试图获取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());
}

我在这里给你做了一个小例子...

正如评论中所说,div 元素没有 value 属性。如果你想访问div中的文本,请使用innerHTML。参数传递实际上工作正常,只需检查您的 if 语句即可。

function sample_1 (divSelected) {
    alert(divSelected.innerHTML);
    sample_2(divSelected);
}

function sample_2(divSelected){
    /* Some Code */
    alert(divSelected.innerHTML);
}