获取jQuery()选择的默认(?)元素

时间:2012-11-09 15:15:43

标签: javascript jquery

我确信有一个简单的解决方案。

首发方案如下。 我创建了一个<select>元素并以动态方式填充它:

function CreateDropDown(name, id, optionList)
{
    var combo = $("<select></select>").attr("id", id).attr("name", name);

    $.each(optionList, function (i, item) {
        combo.append("<option value='"+item.val+"'>" + item.el + "</option>");
    });

    return combo;
}

目的是提取外部HTML。以下工作正确:

combo[0].outerHTML();

但我觉得索引数组非常粗糙。至少在jQuery()函数返回单个元素数组的所有情况下。

问题

每当jQuery()函数返回单个元素数组时,是否可以获得唯一元素而不进行数组索引

Demo

3 个答案:

答案 0 :(得分:3)

jQuery对象本质上是DOM对象的集合,并且没有语法方法将jQuery对象视为单个项目的包装。

jQuery文档建议使用get method来访问各个DOM元素。它没有评论索引操作符和.get()之间的性能差异,但它确实说“每个jQuery对象也伪装成一个数组”,所以可以假设索引操作符只是添加了另一个方法调用。 / p>

答案 1 :(得分:2)

如果你“觉得索引数组非常粗糙”,你可以编写自己的 nice 辅助方法。类似于:

window.$$ = function(){
   return jQuery.apply(jQuery,arguments)[0];
}

用法:

var combo = $$("<select></select>");
console.log( combo.outerHTML );

答案 2 :(得分:1)

使用.get()获取html元素。

http://api.jquery.com/get/