Javascript 无法在此代码中获取此值
第一个问题:像这样附加Javascript 无法在此代码中获取此值,javascript,jquery,foreach,this,onchange,Javascript,Jquery,Foreach,This,Onchange,第一个问题:像这样附加onchange=(function())明智吗 选择show(value)是一个函数,用于获取的id并在另一个中显示数据 最后一个问题是,为什么在这种情况下我无法得到this.id的结果?创建这样的选项元素,第三个问题是在选项元素处不需要id,因为在选项上有val来识别它 <option class="selectS" id="0" value="JSONcall[0].show" onchange="selectShow(this.id)">Some
onchange=(function())
明智吗
选择show(value)
是一个函数,用于获取
的id并在另一个
中显示数据
最后一个问题是,为什么在这种情况下我无法得到
this.id
的结果?创建这样的选项元素,第三个问题是在选项元素处不需要id
,因为在选项上有val
来识别它
<option class="selectS" id="0" value="JSONcall[0].show"
onchange="selectShow(this.id)">Some Value</option>
像这样创建option元素,并且在option元素上不需要使用id
,因为您在option
上有val
来识别它
<option class="selectS" id="0" value="JSONcall[0].show"
onchange="selectShow(this.id)">Some Value</option>
我以不同的方式修改了你的代码
- 使用
$.ajax()
提取一些随机JSON数据并对其进行解析
- 使用
$.each(var,function(index,value){})
在对象上迭代
- 使用
change()
事件来记录text
,val
,id
其余部分可以在append()
方法中修改
函数showData(){
$.ajax({
url:“https://www.json-generator.com/api/json/get/bHepFCoNmG?indent=2",
成功:功能(数据){
$.each(数据,(i,val)=>{
$(“#mySelect”).append(“”+val.name+“”);
});
}
});
}
//变更事件
$('#mySelect').change(function(){
console.log($(this.find(':selected').text());
console.log($(this.find(':selected').val());
console.log($(this.find(':selected').attr(“id”);
});
showData()代码>
我以不同的方式重新编写了您的代码
- 使用
$.ajax()
提取一些随机JSON数据并对其进行解析
- 使用
$.each(var,function(index,value){})
在对象上迭代
- 使用
change()
事件来记录text
,val
,id
其余部分可以在append()
方法中修改
函数showData(){
$.ajax({
url:“https://www.json-generator.com/api/json/get/bHepFCoNmG?indent=2",
成功:功能(数据){
$.each(数据,(i,val)=>{
$(“#mySelect”).append(“”+val.name+“”);
});
}
});
}
//变更事件
$('#mySelect').change(function(){
console.log($(this.find(':selected').text());
console.log($(this.find(':selected').val());
console.log($(this.find(':selected').attr(“id”);
});
showData()代码>
您必须将onchange
触发器置于选择上。我建议您在html属性中添加不带javascript的事件。您必须使用value
而不是id
来共享值
const obj={
渠道1:{
展示:{
id:“ch1”,
名称:“ch1”
}
},
渠道2:{
展示:{
标识:“#ch2”,
名称:“ch2”
}
}
};
函数showData(){
$。每个(对象、功能(键、值){
const tvShow=value.show;//对象[key]==value
$(“您必须将onchange
触发器放在select
上。我建议您在html属性中添加带有javascript no的事件。您必须使用value
而不是id
来共享值
const obj={
渠道1:{
展示:{
id:“ch1”,
名称:“ch1”
}
},
渠道2:{
展示:{
标识:“#ch2”,
名称:“ch2”
}
}
};
函数showData(){
$。每个(对象、功能(键、值){
const tvShow=value.show;//对象[key]==value
$(“您可能希望在select元素上使用onchange属性,并结合使用是否可以尝试对您有效的建议??您还可以使用$('.someClass').data()
从元素中附加和检索数据,而不必将数据存储在多个位置。您可能希望在select元素上使用onchange属性,并结合使用对您有效的建议??您还可以使用$('.someClass').data()
从元素中附加和检索数据,而不必将数据存储在多个位置。原因-1?@fupuchu-您期望的id valye是什么…?您能提供对象的结构吗?是的,它现在可以工作了,就像您所说的selectShow()不应该。原因是-1?@fupuchu-你期望的id valye是什么…?你能提供你的对象的结构吗?是的,它现在起作用了,就像你说的selectShow()应该被要求不要。该死的,这比我拥有的更整洁。该死的,这比我拥有的更整洁。@HorsObject,忽略编辑,我编辑错了帖子。Apologies@HorsSuject,忽略编辑,我编辑了错误的帖子。抱歉
$('<option>').val(key).text(tvShow.name).appendTo('#show-select');
<select onchange= "selectShow()"> </select>
function selectShow(){
console.log($( "#show-select" ).val());
}