我从未见过这种语法的选择器;有人可以向我解释一下吗?
var $select = $('<select>', { id: 'csvMarketSelector', name: 'csvMarketSelector' });
或
var $marketSelectorContainer = $('<div>').add($('<p>', { text: settings.marketLabel })
我理解settings.marketLabel;我刚才没见过像上面这样的选择器。请不要小丑。我搜索了我的答案,包括在这里,但找不到任何帮助。
提前致谢。
答案 0 :(得分:5)
此处的字符串不是选择器。 jQuery
函数也可以接受HTML string,它会解析为新的DOM结构。这个jQuery
函数使用的possible formats是:
jQuery( html [, ownerDocument] ) // htmlString, document
jQuery( html, attributes ) // htmlString, Object
新的DOM元素保存在jQuery列表中,就像任何其他选定的元素一样。您可以稍后使用manipulation functions将其添加到页面的DOM中。
答案 1 :(得分:4)
var $select = $('<select>', {
id: 'csvMarketSelector',
name: 'csvMarketSelector'
});
解释:
$('<select>'
:
创建一个包含在jQuery对象
中的新元素<select>
{ id: 'csvMarketSelector', name: 'csvMarketSelector' }
:设置该元素的属性(即<select>
)
var $select
将jquery对象分配给变量$select
现在你可以像这样使用这个变量 -
$('body').append($select);
更多信息:
答案 2 :(得分:0)
var $select = $('<select>', { id: 'csvMarketSelector',
name: 'csvMarketSelector'
});
只需创建一个select元素,并提供 id和名称属性。
但是创建的元素尚未附加到DOM。
您可以使用.append(
或将HTML注入DOM的任何方法
$('#div').append($select)
答案 3 :(得分:0)
波浪形括号中的部分是属性的散列,将应用于将由$('')创建的元素。正如Sushanth所提到的,它尚未添加到DOM中。您也可以使用替代语法实现相同的结果:
var $select = $('<select id="csvMarketSelector" name="csvMarketSelector">');
没有人提到的重要事情是你不能混合和匹配这两种类型的属性名称!
var $select = $('<select id="csvMarketSelector">', {name: 'csvMarketSelector'});
上述行将失败。您必须将所有属性放入标记中,或放在与该标记关联的哈希中。