我不确定是否将$(对象)或引用对象名称的字符串传递给函数:
function makeObject(div){
var newDiv = $(div);
$(div).html("newDiv: " + newDiv);
}
和来电者:
<div id="myDiv">
<a href="#" onclick="makeObject($(this).parent().attr('id'));">makeObject(this</a>
</div>
我希望这很清楚。它是一个测试功能,让我的头脑中的原则。提前谢谢。
答案 0 :(得分:0)
如果id
选择器在字符串中添加#
前缀,则需要传递有效的选择器。
onclick="makeObject('#' + $(this).parent().attr('id'));"
<小时/> 或者只是传递父元素jQuery对象。在这种情况下,您不需要在函数内部再次使用jQuery包装它。
onclick="makeObject($(this).parent());"
答案 1 :(得分:0)
或者,您也可以在点击时添加事件处理程序。
// $(".myA").click(function (e) {
$("#myDiv").on("click", "a", function(e) {
// $(".myA").click(function (e) {
$("#myDiv").on("click", "a", function(e) {
console.log(this); // `this` is anchor element
var parentId = $(this).parent().attr("id");
console.log(parentId);
e.preventDefault();
});
function makeObject(div) {
var newDiv = $(div);
$(div).html("newDiv: " + newDiv);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="myDiv">
<a href="#" class="myA">
makeObject(this);
</a>
</div>
答案 2 :(得分:0)
我明白了!这样,我确信有更优雅的答案,但是:
function makeObject(div){
var newDiv = {};//$(div);
newDiv = $("#"+div+"");
newDiv.html("newDiv: " + newDiv);
}
和函数调用:
<div id="myDiv"><a href="#" onclick="makeObject($(this).parent().attr('id'));" >makeObject(this);</a></div>