我想编写一个JQuery选择器,它遍历“publication”div并打印所有select标签id和所选的选项id。我怎样才能做到这一点 ?这是我的HTML代码
<div id="publication">
<div>
<div>
<select class="form-control" id="2001">
<option value="0">1 Star</option>
<option value="1" selected >2 Stars</option>
</select>
</div>
<div>
<select class="form-control" id="2008">
<option value="0" selected >1 Star</option>
<option value="1">2 Stars</option>
</select>
</div>
</div>
</div>
这是我正在寻求的理想结果。
[“2001”:“1”,“2008”:“0”]
找到解决方案:
var str = "";
$("#publication").find( "select" ).each(function(i,e) {
str += '"'+$(e).attr("id") + ":" + $(this).val() + '" ,';
});
console.log("{"+str+"}");
答案 0 :(得分:1)
您可以找到所选的选项,并使用map
方法获取选择的ID和数组中选项的值。
var result = $('option[selected]').map(function(i, e){
return [[$(e).parent().attr('id'), $(e).val()]];
}).get();
结果并不完全符合您的要求,因为这不太实用。 (此外,你的例子中的语法不起作用,所以我不确定我是否理解你的确切意图。)相反,这会让你:
[["2001", "1"], ["2008", "0"]]
答案 1 :(得分:0)
这应该返回您正在寻找的字符串。
var form;
form = $("#publication").find(".form-control");
var string_return;
string_return = form.attr("id");
string_return += ":"+form.children("option:selected").val();
string_return - &gt; &#34; 2001:1&#34;