从JavaScript对象访问select HTML元素
我有一个从JavaScript对象访问select HTML元素,javascript,jquery,Javascript,Jquery,我有一个JavaScript对象,它返回HTML信息,以填充响应性web应用程序。我遇到了一个问题,访问一个带有类的选择框来识别它并获取它包含的所选选项 以下是我正在做的: var EditRowRestriction = OptionRules.prototype.getEditRowRestriction(j); <!-- THIS IS THE OBJECT THAT CALLS A METHOD TO POPULATE HTML ELEMENTS TO BE SENT BACK T
JavaScript对象
,它返回HTML信息
,以填充响应性web应用程序。我遇到了一个问题,访问一个带有类的选择框来识别它并获取它包含的所选选项
以下是我正在做的:
var EditRowRestriction = OptionRules.prototype.getEditRowRestriction(j); <!-- THIS IS THE OBJECT THAT CALLS A METHOD TO POPULATE HTML ELEMENTS TO BE SENT BACK TO THAN BE USED TO POPULATE SCREEN
var check = $(EditRowRestriction).find("select");
console.log(check);
现在,我已经能够将其记录下来,如果我尝试执行类似以下操作,检查[0]。查找(':selected').text()代码>
它将响应一个错误:uncaughttypeerror:undefined不是一个函数
现在,如果我只是输出复选框[0]
,我会得到这样的结果:
有什么建议吗
更新:
下面是如何填充select
的示例
var sel = document.createElement("select");
$.ajax({
url: "actions/....php",
type: "post",
dataType: "json",
data:
{
'function' : "admin_populate_global",
'elevation_name' : '',
'user' : $("li.selected").text()
},
success: function(data){
// FIRST MAKE SURE DATA WAS FOUND
if(data["status"] == "found")
{
var restrictionArray = data["data_retrieved"].split(',');
var events = $(".option-rule-item").map(function() {
if($(this).hasClass("selected"))
{
}
else
return this.innerHTML;
}).get();
var checkReturnedText = $.trim(restrictionArray[loop_amount]);
sel.className ="restirction-select";
var opt = document.createElement("option");
opt.innerHTML = checkReturnedText;
opt.setAttribute("value", checkReturnedText);
sel.appendChild(opt);
for(var i = 0; i < events.length; i++)
{
if(checkReturnedText == events[i])
{
}
else
{
var opt = document.createElement("option");
var event = events[i];
opt.innerHTML = event;
opt.setAttribute("value", event);
sel.appendChild(opt);
}
}
}
},
error:function(){
alert("An error occured, please try again.");
}
});
return sel;
var sel=document.createElement(“选择”);
$.ajax({
url:“actions/…php”,
类型:“post”,
数据类型:“json”,
数据:
{
'功能':“管理\填充\全局”,
“立面图名称”:“,
“用户”:$(“li.selected”).text()
},
成功:功能(数据){
//首先确保找到了数据
如果(数据[“状态”]=“找到”)
{
var restrictionArray=数据[“检索到的数据]。拆分(',');
var事件=$(“.option规则项”).map(函数(){
if($(this).hasClass(“选定”))
{
}
其他的
返回this.innerHTML;
}).get();
var checkReturnedText=$.trim(restrictionArray[loop_amount]);
sel.className=“重新循环选择”;
var opt=document.createElement(“选项”);
opt.innerHTML=checkReturnedText;
opt.setAttribute(“值”,选中ReturnedText);
选择附加儿童(opt);
对于(var i=0;i
check[0]
是一个DOM对象,因此不能对其使用jQuery方法,使用check.find(…
?@charlietflcheck.find(':selected')。text()
不输出任何内容。是否选择了任何内容?尝试记录check.html()
@charlietfl ya nothing outputseither在ajax回调中执行您需要的操作或查看使用承诺
var sel = document.createElement("select");
$.ajax({
url: "actions/....php",
type: "post",
dataType: "json",
data:
{
'function' : "admin_populate_global",
'elevation_name' : '',
'user' : $("li.selected").text()
},
success: function(data){
// FIRST MAKE SURE DATA WAS FOUND
if(data["status"] == "found")
{
var restrictionArray = data["data_retrieved"].split(',');
var events = $(".option-rule-item").map(function() {
if($(this).hasClass("selected"))
{
}
else
return this.innerHTML;
}).get();
var checkReturnedText = $.trim(restrictionArray[loop_amount]);
sel.className ="restirction-select";
var opt = document.createElement("option");
opt.innerHTML = checkReturnedText;
opt.setAttribute("value", checkReturnedText);
sel.appendChild(opt);
for(var i = 0; i < events.length; i++)
{
if(checkReturnedText == events[i])
{
}
else
{
var opt = document.createElement("option");
var event = events[i];
opt.innerHTML = event;
opt.setAttribute("value", event);
sel.appendChild(opt);
}
}
}
},
error:function(){
alert("An error occured, please try again.");
}
});
return sel;