我从div onClick方法调用Javascript函数
<div onClick="sample_1(this)" />
从这个sample_1方法我动态创建一个新的div并在该div中添加一个onclick事件并尝试传递从sample_1函数的参数得到的'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开发人员工具时,在其onClick方法中使用此动态div“sample_1_1”而不是将对象divSelected值传递给它只是写:
sample_2([object HTMLDivElement]);
如何将div_1中的divSelected对象传递给sample_2?
我正在尝试访问正在调用的第一个div的引用,并将其引用传递给方法sample_1_1,并从那里创建一个新的div和onclick事件,该创建的div我试图传递相同的引用第一个div到sample_1_1方法中创建的div的onclick方法。
答案 0 :(得分:1)
我不明白你想做什么。常规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());
}
我给你做了一个小例子here ......
答案 1 :(得分:1)
如评论中所述,div元素没有值属性。如果您想访问div中的文本,请使用 innerHTML 。参数传递实际上工作正常,只需检查你是否声明。
function sample_1 (divSelected) {
alert(divSelected.innerHTML);
sample_2(divSelected);
}
function sample_2(divSelected){
/* Some Code */
alert(divSelected.innerHTML);
}