如何在函数中传递参数来创建ID?例如,在下面我想将ID_Name视为<div>
ID。以下不起作用。只是为了表明我的意图。
function create_drags(ID_Name) {
$("BODY").append($('<div ID="ID_Name" class="ui-widget-content"><p>Draggable </p></div>'));
$(ID_Name).draggable();
}
如何实现这一目标?
答案 0 :(得分:2)
<强>更新强> 这是一个让你尝试的小提琴。 http://jsfiddle.net/etdKL/
字符串连接。
有两个问题
分配Id时的第一个
而不是ID="ID_Name"
您键入ID="'+ID_Name+'"
然后JavaScript会将ID_Name评估为变量而不是字符串文字。
$("BODY").append($('<div ID="'+ID_Name+'" ...'
第二个是你需要在选择器中使用#来告诉JQuery使用ID选择器。
$(ID_Name) --> $('#' +ID_Name)
答案 1 :(得分:2)
function create_drags(ID_Name){
$("BODY").append($('<div ID="' + ID_Name + '" class="ui-widget-content"><p>Draggable</p></div>'));
$('#' + ID_Name).draggable();
}
选择新添加的div时,还有一个'#'缺失。
答案 2 :(得分:1)
您可以使用字符串连接来包含ID_Name
的值,也可以使用jQuery创建单独的DOM元素,并在其上设置您想要的属性/属性,以及调用任何其他jQuery函数。代码看起来像这样:
function create_drags(ID_Name) {
var $div = $('<div/>').attr('id', ID_Name).addClass('ui-widget-content').draggable();
$div.append('<p>Draggable </p>');
$("BODY").append($div);
}
答案 3 :(得分:1)
您可以使用自定义属性传递变量
<div id="div_id" custom-attr="other_id"></div>
然后用jQuery获取
$("#div_id").attr("custom-attr");
答案 4 :(得分:1)
function create_drags(ID_Name) {
$("BODY").append(
$('<div ID="'+ID_Name+'" class= "ui-widget-content"><p>Draggable </p></div>')
);
$(ID_Name).draggable();
}
或类似jQuery的方式:
function create_drags(ID_Name) {
$("body").append(function(){
var $div = $("<div/>");
$div.attr("id", ID_NAME);
$div.addClass("ui-widget-content");
$div.append("<p>Draggable</p>");
$div.draggable();
return $div;
});
}
答案 5 :(得分:1)
这将解决问题并避免在刚刚创建的元素上使用选择器:
function create_drags(ID_Name) {
$('<div id="'+ ID_Name +'" class="ui-widget-content"><p>Draggable</p></div>')
.appendTo('body')
.draggable();
}