检查 select 的内容以更改 css 属性
checking the content of a select to change a css property
我正在制作一个网站,您可以在其中使用多个 select 选项来创建句子。
我希望能够检测到用户何时更改它们以创建一些特定的句子,例如“我”、“我”、“蓝色”正在将颜色更改为蓝色。
事实上,这只是一个选项,我想要一个包含多个动作的列表,“我很大”,“我被轮换”并且每次都做一些不同的事情,所以我尝试了这个:
$('select').on('change', function() {
console.log(phrase);
if (phrase = "Is big"){
$(".white").css('font-size', '5em');
}
});
但它不起作用,因为代码无法到达函数 phrase(下面的代码位于其他地方)。
此代码在开头创建一个短语,保留它并在您更改 select 值时使其演变。
$(document).ready(function() {
});
let phrases = ["I am not. "
];
let lettres = /[\u0041-\u005a\u0061-\u007a\u00aa-\u00b5\u00ba-\u00c0\u00c1-\u00d6\u00d8-\u00f6]/gui;
tokenize = function(phrase) {
let mots = [''];
let it = phrase[Symbol.iterator]();
for (var c = it.next(); !c.done; ) {
for (; !c.done && c.value.match(lettres); c = it.next()) {
mots[mots.length-1]+=(c.value);
}
//console.log(c.value);
if (mots[mots.length-1].length != 0 ){
mots.push('');
}
if (c.value == ' ') {
for (c = it.next(); !c.done && c.value == " "; c = it.next()) {continue;} continue;
}
// console.log(i);
console.log(mots);
if (!c.value.match(lettres)){
mots[mots.length-1]+=(c.value);
//console.log(c.value);
mots.push('');
}
c = it.next();
}
return mots.slice(0, mots.length-1);
}
$(document).ready(function() {
let LARGEUR = $("#container .repeat").clone();
let change=function(){
$(".width_tmp_option", this.parent).html($('option:selected', this).val());
$(this).width($(".width_tmp_select", this.parent).width());
}
$('#container').on("change",".un",change);
let idx = Math.floor(Math.random() * Math.floor(phrases.length));
let mots = tokenize(phrases[idx]);
for( var i = 0 ; i < mots.length-1; i++){
$('#container .repeat:last-child').after(LARGEUR.clone());}
var i = 0;
console.log(mots.length);
$('#container .repeat').each(function(){
$('.un', this).val(mots[i]).each(change);
i++;
});
});
@font-face {
font-family: "Lexicon";
src: url("fontes/Lexicon.woff") format("woff");
}
body {
width: 70vw;
height: 100vh;
overflow: normal;
font-family:'Lexicon';
overflow: hidden;
}
.un{
width: 2rem;
margin: 0.2rem;
font-family: 'Lexicon';
}
option {
background-color: none;
font-family: 'Lexicon';
}
option:hover {
background-color: green;
}
::selection {
background-color: green;
}
.width_tmp_select{
background-color: none;
}
.width_tmp_select{
display : none;
font-size: 2.5rem;
font-family: 'Lexicon';
}
.un{
font-size: 2.5rem;
}
#p1{
font-size: 2rem;
border: none;
}
select {
}
/* For IE10 */
select::-ms-expand {
display: none;
}
.repeat {
display: inline-block;
}
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<body class="white">
<div id="container">
<div class="repeat">
<select name="mots" class="un">
<option value=""> </option>
<option value=".">.</option>
<option value="I">I</option>
<option value="am">am</option>
<option value="blue">blue</option>
<option value="not">not</option>
<option value="is">is</option>
<option value="big">big</option>
<option value="!">!</option>
</select>
<select class="width_tmp_select">
<option class="width_tmp_option"></option>
</select>
</div>
</div>
</body>
通过 phrase = "Is big"
你设置变量 parse
等于 "Is big"
如果你想检查它是否相等使用 phrase === "Is big"
.
全文:
$('select').on('change', function() {
console.log(phrase);
if (phrase === "Is big"){
$(".white").css('font-size', '5em');
}
});
我正在制作一个网站,您可以在其中使用多个 select 选项来创建句子。 我希望能够检测到用户何时更改它们以创建一些特定的句子,例如“我”、“我”、“蓝色”正在将颜色更改为蓝色。 事实上,这只是一个选项,我想要一个包含多个动作的列表,“我很大”,“我被轮换”并且每次都做一些不同的事情,所以我尝试了这个:
$('select').on('change', function() {
console.log(phrase);
if (phrase = "Is big"){
$(".white").css('font-size', '5em');
}
});
但它不起作用,因为代码无法到达函数 phrase(下面的代码位于其他地方)。 此代码在开头创建一个短语,保留它并在您更改 select 值时使其演变。
$(document).ready(function() {
});
let phrases = ["I am not. "
];
let lettres = /[\u0041-\u005a\u0061-\u007a\u00aa-\u00b5\u00ba-\u00c0\u00c1-\u00d6\u00d8-\u00f6]/gui;
tokenize = function(phrase) {
let mots = [''];
let it = phrase[Symbol.iterator]();
for (var c = it.next(); !c.done; ) {
for (; !c.done && c.value.match(lettres); c = it.next()) {
mots[mots.length-1]+=(c.value);
}
//console.log(c.value);
if (mots[mots.length-1].length != 0 ){
mots.push('');
}
if (c.value == ' ') {
for (c = it.next(); !c.done && c.value == " "; c = it.next()) {continue;} continue;
}
// console.log(i);
console.log(mots);
if (!c.value.match(lettres)){
mots[mots.length-1]+=(c.value);
//console.log(c.value);
mots.push('');
}
c = it.next();
}
return mots.slice(0, mots.length-1);
}
$(document).ready(function() {
let LARGEUR = $("#container .repeat").clone();
let change=function(){
$(".width_tmp_option", this.parent).html($('option:selected', this).val());
$(this).width($(".width_tmp_select", this.parent).width());
}
$('#container').on("change",".un",change);
let idx = Math.floor(Math.random() * Math.floor(phrases.length));
let mots = tokenize(phrases[idx]);
for( var i = 0 ; i < mots.length-1; i++){
$('#container .repeat:last-child').after(LARGEUR.clone());}
var i = 0;
console.log(mots.length);
$('#container .repeat').each(function(){
$('.un', this).val(mots[i]).each(change);
i++;
});
});
@font-face {
font-family: "Lexicon";
src: url("fontes/Lexicon.woff") format("woff");
}
body {
width: 70vw;
height: 100vh;
overflow: normal;
font-family:'Lexicon';
overflow: hidden;
}
.un{
width: 2rem;
margin: 0.2rem;
font-family: 'Lexicon';
}
option {
background-color: none;
font-family: 'Lexicon';
}
option:hover {
background-color: green;
}
::selection {
background-color: green;
}
.width_tmp_select{
background-color: none;
}
.width_tmp_select{
display : none;
font-size: 2.5rem;
font-family: 'Lexicon';
}
.un{
font-size: 2.5rem;
}
#p1{
font-size: 2rem;
border: none;
}
select {
}
/* For IE10 */
select::-ms-expand {
display: none;
}
.repeat {
display: inline-block;
}
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<body class="white">
<div id="container">
<div class="repeat">
<select name="mots" class="un">
<option value=""> </option>
<option value=".">.</option>
<option value="I">I</option>
<option value="am">am</option>
<option value="blue">blue</option>
<option value="not">not</option>
<option value="is">is</option>
<option value="big">big</option>
<option value="!">!</option>
</select>
<select class="width_tmp_select">
<option class="width_tmp_option"></option>
</select>
</div>
</div>
</body>
通过 phrase = "Is big"
你设置变量 parse
等于 "Is big"
如果你想检查它是否相等使用 phrase === "Is big"
.
全文:
$('select').on('change', function() {
console.log(phrase);
if (phrase === "Is big"){
$(".white").css('font-size', '5em');
}
});