我想做的是,将html
选择选项转换为mysql
查询的一部分,首先将所有选项文本转换为数组,然后转换为字符串,但要防止在其中包含某些选项此字符串在foreach循环中。
到目前为止,我尝试过,但是它包含了我使用的所有选项
if (v != 'blah 0' || v != 'blah 99' || v != 'blah 100') {
但不起作用。我不想将这些值放在字符串中。
var array = [];
var str = "";
$('select option').each(function() {
var text = $(this).text();
array.push(text);
});
$.each(array, function(i, v) {
if (v != 'blah 0' || v != 'blah 99' || v != 'blah 100') {
str += '("' + v + '" ,18),';
}
});
console.log(str);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
<option>blah 1</option>
<option>blah 0</option>
<option>blah 2</option>
<option>blah 3</option>
<option>blah 4</option>
<option>blah 0</option>
<option>blah 5</option>
<option>blah 99</option>
<option>blah 100</option>
</select>
答案 0 :(得分:3)
您应使用和&&
代替或在条件下使用||
var array = [];
var str = "";
$('select option').each(function() {
var text = $(this).text();
array.push(text);
});
$.each(array, function(i, v) {
if (v != 'blah 0' && v != 'blah 99' && v != 'blah 100') {
str += '("' + v + '" ,18),';
}
});
console.log(str);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
<option>blah 1</option>
<option>blah 0</option>
<option>blah 2</option>
<option>blah 3</option>
<option>blah 4</option>
<option>blah 0</option>
<option>blah 5</option>
<option>blah 99</option>
<option>blah 100</option>
</select>
您也可以改用.filter()
和.map()
var str = $('select option').filter(function() {
return ['blah 0', 'blah 99', 'blah 100'].indexOf($(this).text()) == -1;
}).map(function(){
return '("'+$(this).text()+'" ,18)';
}).toArray().join(',');
console.log(str);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
<option>blah 1</option>
<option>blah 0</option>
<option>blah 2</option>
<option>blah 3</option>
<option>blah 4</option>
<option>blah 0</option>
<option>blah 5</option>
<option>blah 99</option>
<option>blah 100</option>
</select>