我有一个文本框,用户可以在其中输入我想要的值并执行以下操作。我希望能够将每个单词分开并在其末尾添加一些内容。所以,如果他们把123.我想分开它,使它成为1.jpg,2,jpg 3.jpg 在它们分开之后我想把它放在一个数组中以与另一个数组进行比较并从那里开始。 这是我到目前为止所得到的
<input type="text" id="textfromuser" />
<script type = "text/javascript">
function validate(){
var lists = [];
var VAlidation = document.getElementById("textfromuser").value;
lists.push(VAlidation);
for(var i=0; i<lists.length; i++)
alert(lists[i]).split('.');
代码的这一部分是为了表明文本框中的值被拆分并放在一个数组中,但它不起作用..任何想法?
答案 0 :(得分:2)
我认为你混淆数组和字符串,你从输入中获得的值是一个字符串,然后你将它添加到 lists 数组并迭代该数组。
可能这就是你要找的东西
HTML
<input type="text" id="textfromuser" />
的Javascript
function validate(){
// empty array
var ar = [];
// obtain a string from the input "text" field, retrieved by the "id" attribute
var VAlidation = document.getElementById("textfromuser").value;
// split the string into a character array
var lists = VAlidation.split('');
// iterate over the character array
for(var i=0; i<lists.length; i++){
// create a string concatenating the array's element and '.jpg'
var str = lists[i]+'.jpg';
// add the string var to the array
ar.push(str);
}
return ar;
}
如果你想试试,我创建了一个快速测试它的jsfiddle http://jsfiddle.net/kpw23/2/
<强>更新强>
要比较数组,有很多方法可以实现它。实现此目的的一种简单方法是序列化数组并比较序列化字符串:
// having two arrays
var list = ['1.jpg','2.jpg','3.jpg'];
var list2 = ['1.jpg','2.jpg','3.jpg'];
// "Serialize" the arrays, the join() method
/// joins the elements of an array into a string, and returns the string
serlist = list.join();
serlist2 = list2.join();
// Compare both serialized arrays
if(serlist==serlist2){
alert("Arrays are equal");
}
else{
alert("Arrays are not equal");
}
只有在数组以相同的方式排序并且在相同的数组位置中包含完全相同的条目时,此方法才有效。
答案 1 :(得分:0)
您提醒lists[i]
的值,而不是lists[i].split('.')
。尝试:
alert(lists[i].split('.'));