好的我正在使用map.get()在Array
中存储选择选项值myArray = $("option:selected").map(function(){ return this.value }).get().join(" ");
我有一些div的ID与存储在Array
中的select选项值相同myArray = [ one two three ];
我想将[一二三]作为类应用到div.box并找到ID与myArray相同的Div [div#one div#two div#three]并获取所有输入:选中。
<div id="one"> inputs with :checked </div>
<div id="two"> inputs with :checked </div>
<div id="three"> inputs with :checked </div>
<div id="four"> inputs with :checked </div>
如何获取:仅使用ID [一两三]来检查来自Div的项目。
我不确定如何找到匹配每个数组元素的ID,感谢您的帮助,并提前感谢:)
var selectedOptions = $(".select-field option:selected").map(function() {
return this.value
}).get().join(" ");
//add selected option value as CLASS to .box
$('.box').addClass(selectedOptions);
// check if selected option stored in array match any div ID and get it's checked values
$.each(selectedOptions, function(index, value) {
$('#' + value + ' input:checked').each(function() {
var checked = $(this);
});
});
//result
$("p.select").append(selectedOptions);
$("p.checked").append(checked);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="select-field">
<option value="one">option one</option>
<option value="two">option two</option>
<option value="three">option three</option>
</select>
<select class="select-field">
<option value="four">option four</option>
<option value="five">option five</option>
<option value="six">option six</option>
</select>
<div id="one">
<p>Option one</p>
<fieldset>
<input type="radio" name="div1" value="left">
<label for="left">Left</label>
<input type="radio" name="div1" value="right" checked>
<label for="right">Right</label>
</fieldset>
</div>
<div id="two">
<p>Option two</p>
<fieldset>
<input type="radio" name="div2" value="left" checked>
<label for="left">Left</label>
<input type="radio" name="div2" value="center">
<label for="center">Center</label>
</fieldset>
</div>
<div id="three">
<p>Option three</p>
<fieldset>
<input type="radio" name="div3" value="right">
<label for="right">Right</label>
<input type="radio" name="div3" value="center" checked>
<label for="center">Center</label>
</fieldset>
</div>
<div id="four">
<p>Option four</p>
<fieldset>
<input type="radio" name="div4" value="right">
<label for="right">Right</label>
<input type="radio" name="div4" value="center" checked>
<label for="center">Center</label>
</fieldset>
</div>
<div id="five">
<p>Option five</p>
<fieldset>
<input type="radio" name="div5" value="left">
<label for="left">Left</label>
<input type="radio" name="div5" value="center" checked>
<label for="center">Center</label>
</fieldset>
</div>
<br />
<h4>Results</h4>
<div style="border:2px solid" class="box">Add "option one" and "option two" value as Class to this div .box example class="one four"</div>
<p class="select">Selected Options are :</p>
<p class="checked">Checked Options are :</p>
答案 0 :(得分:1)
你必须使用每个遍历数组,然后你必须找到选中的值。
cpan
install Digest::MD5
此示例可能对您有所帮助。
答案 1 :(得分:0)
尝试这个来创建数组
$.each(myArray, function( index, value ) {
$('#'+value+' input:checked').each(function() {
console.log($(this));
});
});
然后使用
var myArray = [];
$("option:selected").each(function(){
var ThisIt = $(this);
myArray.push($.trim(ThisIt.val()));
});
答案 2 :(得分:0)
由于您在返回的数组中使用了.join()
,因此已将其转换为字符串。我建议你不要.join(" ")
空间。
相反,你可以返回一个附加#
附加值的字符串,只返回.join("')
没有空格的字符串,它会输出一个逗号分隔的哈希标记值字符串。
你可以这样做:
var myArray = $("option:selected").map(function(){
return '#'+this.value;
}).get().join(",");
// would output #one, #two, #three
现在您可以创建var myArray
的选择器:
$(myArray).each(function (){
var val = $(this).find(':ckecked').val();
console.log(val);
});