2017-07-28 49 views
-3

我运行的是以下几点:如何从字符串中剥离字符串并将其推入数组?

var countries = []; 
$("#usp-custom-3 option").each(function() { 
    var single = $(this).text(); 
    if($(single == "United States of America")) { 
    $(this).text() == "United States"; 
    } 
    countries.push(single); 
    console.log(single); 
}); 

基本上,我试图做的是United States of America转化为United States之前,将其与其余国家推入阵在一起,因为我有个国家的名单select option

+0

也许'单== “美国”;'?因为单个是你传递给你的数组的对象 –

+0

推''(this).text()'而不是单独的,因为你没有分配到'单' – Durga

+0

为什么downvote? –

回答

2
var countries = []; 

    $("#usp-custom-3 option").each(function() { 
    var single = $(this).text(); 
    if(single == "United States of America") { 
    single= "United States"; 
    } 
    countries.push(single); 
    console.log(single); 
    }); 
+0

非常感谢 –

0
var countries = []; 
$("#usp-custom-3 option").each(function() { 
    var single = $(this).text(); 
    if (single == "United States of America") { 
     single = "United States"; 
    } 
    countries.push(single); 
    console.log(single); 
}); 

试试这个。

+0

我仍然看到美国https:// jsfiddle。 net/pz3ce0o6/172/ –

+0

'=='不是赋值运算符。 –

0

解决了您的问题并添加了一点重构。

var countries = []; 
var us = 'United States'; 
var usa = 'United States of America'; 

$("#usp-custom-3 option").each(function() { 
    var single = $(this); //gets jquery instance of the element 
    if(single.text() == usa) { //Check if its text is USA 
    single.text(us); //Replace the option text with 'United States' 
    } 
    countries.push(single.text()); //Push value into country list 
}); 
+1

每次它会推'ua' – Durga

+0

检查控制台https://jsfiddle.net/pz3ce0o6/174/ –

+0

@Durga我刚​​刚注意到,也修正了。 –

1

试试这个

var countries = []; 
 
$("#usp-custom-3 option").each(function() { 
 
    var single = $(this).text(); 
 
    if (single == "United States of America") { 
 
     single = "United States"; 
 
    } 
 
    countries.push(single); 
 
    console.log(single); 
 
}); 
 

 
console.log(countries);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="usp-custom-3"> 
 
    <option>United States of America</option> 
 
    <option>India</option> 
 
    <option>UK</option> 
 
    <option>United States of America</option> 
 
    <option>India</option> 
 
    <option>UK</option> 
 
    <option>United States of America</option> 
 
</select>

0

我一直想知道为什么它是如此重要,只为使用jQuery的缘故混合使用jQuery代码。

这可能是这么简单(获取节点,并将其与一个简单的检查映射到平面数组):

var nodesArray = [].slice.call(document.querySelectorAll("#some_select option")).map(function(v){return (v.innerText == 'United States of America') ? 'United States' : v.innerText}); 
console.log(nodesArray.toString()); 
0

$(本)的.text()==“美国”;是问题的路线。 “012”是比较表达式,不是赋值表达式。

分配值,这只是使用$(本)的.text( “任何你想要的文字”)