【问题标题】:jquery create new div with using array value as idjquery使用数组值作为id创建新的div
【发布时间】:2011-06-24 06:10:11
【问题描述】:

您好,我正在尝试创建一个新的 div,但使用数组中的值作为其 id

var divID = 'borough_'+BoroughTagger.myIdArray[intIndex];
jQuery('<div/>', {  
    id: divID  
}).appendTo('#results');

好像没用?有任何想法吗? 更新: 从id: divID 行中删除逗号, &lt;div&gt;&lt;/div&gt; 现在已创建,但没有创建 id 属性。

从我到目前为止所尝试的内容来看,joes 回答中的以下内容有效: $('#results').append('');

即创建了一个 div:&lt;div id="borough_2"&gt;&lt;/div&gt;

创建此 div 后我正在执行 ajax 调用并希望这样做:

success: function(data){
    // data retrived ok
    var myData = data;
    $("boroughId=" + BoroughTagger.myIdArray[intIndex]).html(myData)
}

使用 joes 方法创建了 div,但我仍然无法引用它来附加从 ajax 请求接收的数据。可能有一些范围问题吗?

【问题讨论】:

  • 去掉divID后面的逗号。它将破坏大多数版本的 IE。
  • 您使用的是 jQuery 1.4+ - 因为 jQuery 对象的签名类型直到 v1.4 才添加。
  • “似乎不起作用”意味着什么?您收到错误消息吗?是只有特定的浏览器受到影响,还是全部受到影响?我们可以看到一些与 JS 一起使用的标记(您确定 #results 元素存在吗)?你有这个内联文件还是外部文件?在任何一种情况下,您是否将其包装在 $() 中以便绑定到文档加载/就绪事件?请提供更多信息。
  • 没有错误似乎添加到 dom,删除逗号会破坏更多内容,@orbling:很高兴知道它在早期版本的 jquery 中不起作用,但我使用的是 1.4跨度>
  • 我删除了错误的逗号!它确实添加了 div,但只是 &lt;div&gt;&lt;/div&gt; 没有添加 id

标签: jquery arrays html


【解决方案1】:

试试

$('#results').append('<div id="borough_'+ BoroughTagger.myIdArray[intIndex] +'"></div>');

如果你想保留对 ID 的引用,没问题,就这样做

var divId = 'borough_'+ BoroughTagger.myIdArray[intIndex];
$('#results').append('<div id="'+ divId +'"></div>');

然后您可以像这样访问新元素:

$('#'+divId).doSomething();

【讨论】:

  • 谢谢 joe,如果我想添加额外的参数,例如 rel 等,如果知道如何使用简写 {properties: here} 会很高兴
  • @Dizzy:您正确使用了速记方法。如果它不起作用,还有其他问题。而且它不使用innerHTML。它使用document.createElement,然后为属性调用attrgithub.com/jquery/jquery/blob/1.4.4/src/core.js#L123-124
  • @Dizzy Brian High np man 我没有意识到保留对 ID 的引用对您来说至关重要,我的答案已更新以帮助您。仍然不使用速记属性,但它应该可以满足您的需求。
  • @Dizzy:将success: 回调中的参数名称从data 更改为其他名称,例如dat。在将data: 属性设置为调用集并使用data 作为参数名称时,某些浏览器会出现问题。
  • @Dizzy:是的,我会跳过var,除非它被用来保存响应的修改版本。无论哪种方式,我都会避免使用data 作为回调函数的参数名称。
【解决方案2】:

当您创建 div 对象时,它会返回对自身的引用。

var newDiv = jQuery('', {id: divID}).appendTo('#results');

【讨论】:

    猜你喜欢
    • 2011-07-15
    • 1970-01-01
    • 2013-06-03
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 2017-10-12
    • 1970-01-01
    • 2011-04-12
    相关资源
    最近更新 更多