Javascript ID作为<;的事件参数;部门>;在jquery中

Javascript ID作为<;的事件参数;部门>;在jquery中,javascript,html,jquery-ui,jquery,Javascript,Html,Jquery Ui,Jquery,如何在函数中传递参数以创建ID?例如,在下面的例子中,我希望ID\u Name被视为ID。下面的方法不起作用。只是为了表明我的意图 function create_drags(ID_Name) { $("BODY").append($('<div ID="ID_Name" class="ui-widget-content"><p>Draggable </p></div>')); $(ID_Name).draggable(); }

如何在函数中传递参数以创建ID?例如,在下面的例子中,我希望ID\u Name被视为
ID。下面的方法不起作用。只是为了表明我的意图

function create_drags(ID_Name) {
    $("BODY").append($('<div ID="ID_Name" class="ui-widget-content"><p>Draggable </p></div>'));
    $(ID_Name).draggable();
}
函数创建拖动(ID\U名称){
$(“正文”).append($('Draggable

'); $(ID_Name).draggable(); }
如何做到这一点?

更新: 这是一把小提琴,你可以试一试

字符串连接
有两个问题
分配Id时的第一个值。
您键入的不是
ID=“ID\u Name”
而是
ID=“+ID\u Name+”
,然后JavaScript将ID\u Name作为变量而不是字符串文本进行计算

$("BODY").append($('<div ID="'+ID_Name+'" ...'
函数创建拖动(ID\U名称){
$(“正文”).append($('Draggable

'); $('#'+ID_Name).draggable(); }

在选择新添加的div时,还缺少一个“#”。

您可以使用字符串连接来包含
ID\u 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);
}
函数创建拖动(ID\U名称){
var$div=$('').attr('id',id_Name).addClass('ui-widget-content').draggable();
$div.append(“Draggable

”); $(“正文”)。追加($div); }
您可以使用自定义属性传递变量

<div id="div_id" custom-attr="other_id"></div>
函数创建拖动(ID\U名称){
$(“正文”)。附加(
$(“Draggable

”) ); $(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;
    });
}
函数创建拖动(ID\U名称){
$(“body”).append(函数(){
变量$div=$(“”);
$div.attr(“id”,id\u NAME);
$div.addClass(“ui小部件内容”);
$div.append(“Draggable

”); $div.draggable(); 返回$div; }); }
这将解决问题,并避免在刚创建的元素上使用选择器:

function create_drags(ID_Name) {
  $('<div id="'+ ID_Name +'" class="ui-widget-content"><p>Draggable</p></div>')
    .appendTo('body')
    .draggable();
}
函数创建拖动(ID\U名称){
$(“Draggable

”) .appendTo('正文') .draggable(); }
我想你指的是ID=“+ID\u Name+”,还值得一提的是
$(ID\u Name).draggable()
应更改为
$('#'+ID_Name).draggable()我想这对创建内容很有效,但如果我使用$(“#+ID_Name+”)之类的东西,我仍然无法调用draggable。draggable或$(“#ID_Name”)。draggable。我做的有什么不对吗?我想这对创建内容有用,但我仍然不能将draggable称为$('#'+ID_Name).draggable();我尝试了双引号和其他方法,但似乎都不起作用。谢谢,我把无效的字符串内容传递给create_drag函数是我的错误。谢谢。
$("#div_id").attr("custom-attr");
function create_drags(ID_Name) {
$("BODY").append(
    $('<div ID="'+ID_Name+'" class= "ui-widget-content"><p>Draggable </p></div>')
);
$(ID_Name).draggable();
}
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;
    });
}
function create_drags(ID_Name) {
  $('<div id="'+ ID_Name +'" class="ui-widget-content"><p>Draggable</p></div>')
    .appendTo('body')
    .draggable();
}