jQuery存储或传输选择(下拉)的元素
jQuery store or transfer elements of a select (drop down)
我有一个由sql查询填充的选择输入。由于网页
发生的事件顺序,我正在尝试执行以下操作1)填充选择列表2)清空包含选择列表的div3)在添加到html
的新div中重新使用选择列表我从来没有离开过页面,但是我销毁了select元素。我希望能够存储select元素以供以后使用。我原以为很简单:
var teamList;
$('.otherSelector').on('change',function(){
$.post(url, {x:x},function(data){
teamList = $('#teamList'); //actual select input
$.each(data, function(key, val){
var option = $('<option/>');
option.attr('value', key)
.html(val)
.appendTo(teamList);
});
}
在teamList被填充之后,点击一个按钮并通过empty()将其移除。然而,我认为数据将保留在变量teamList中,因为我在删除DOM元素时没有更改变量。也许我只是存储错了,或者调用错了?我试着这样称呼它:
$('.selector').on('click',function(){
var newStuff = '<form>'+
'<input name = "test" type = "text">'+
teamList+
'........etc
$('html').append(newStuff);
在form元素中,我看到的是[object object]而不是下拉列表。
任何帮助都是感激的。
我自己的回答:
teamList.prop (outerHTML)
感谢Patrick Evans
这是因为teamList
是一个dom对象。默认情况下,当对一个对象进行字符串连接时,它将打印出[Object object]
,而不是对象的内容,在本例中是组成dom元素的html文本。
使用jQuery的append
函数重新添加select到表单。
$('.selector').on('click',function(){
var form = $('<form><input name = "test" type = "text"></form');
form.append(teamList);
$('body').append(form);
});
还请注意,我将$('html')
更改为$('body')
,因为您不应该直接将内容附加到<html>
元素。
如果你只想用字符串连接,你需要使用jQuery的outerHTML
函数,它将返回元素的html和它的内容
$('.selector').on('click',function(){
var newStuff = '<form>'+
'<input name = "test" type = "text">'+
teamList[0].outerHTML+
'</form>';
$('body').append(newStuff);
});
相关文章:
- 如何在按钮中显示下拉列表中选定的元素
- 量角器 - 根据条件识别嵌套下拉元素时超时
- 在 javascript 或 jquery 中添加或删除下拉元素
- d3.js中的下拉元素值
- Protractor-如何选择嵌套严重的下拉元素
- OnMouseMove on body标记导致子下拉元素出现问题
- 如何使用Java从SeleniumWebDriver中的不可见下拉元素中选择选项
- 从下拉元素中选择选项不可见
- 如何在选中单选按钮时动态添加下拉元素
- PHP 简单 HTML DOM 和下拉元素已选选项
- 下拉元素选择和 JS 调用不起作用
- 从输入文本中寻找关于下拉元素的 javascript 插件
- 在鼠标输入获取下拉元素的焦点
- 从链接中设置(选择)下拉元素
- 选择带有目标值的下拉元素
- 如何查看下拉元素是否被选中
- 如何在IE中重新获得ajax下拉元素的焦点
- 自定义下拉元素一直隐藏
- 如何禁用下拉元素中的特定项目
- 选择下拉元素后保持下拉菜单打开