javascript - 无法将 'this' 值从一个 javascript 函数传递到另一个函数?

标签 javascript jquery html

我正在从 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/

相关文章:

javascript - 如何使用 JavaScript 查找同一 html 类的三个实例中的两个?

javascript - 获取json数据到数组中

jquery - 如何使用 jQuery 异步加载 CSS?

即使服务器响应是带有有效 JSON 数据的 HTTP 200,JQuery Ajax 调用也会失败

html - 自动定位到下拉选择框中的选项

html - 第一个 TH 忽略 html 表中的调整列大小

JavaScript - 将所有变量/增量变量后缀打印到控制台

javascript - 需要在 JS 中设置一个较短的超时时间……如何?

带有 jQ​​uery 和 JSON 的 Javascript 类

html - 如何使子div的高度高于父div?