我有两个文本框,其值如下:
312,315
315,313
我想获得一个包含所有值的字符串,例如:312,315,313
跳过两个字段中的现有值。
我的代码:
var firstbox = $("#firstbox").val();
var secondbox = $("#secondbox").val();
var newvalue = $(firstbox).not(secondbox).get();
console.log(newvalue);
但它不起作用,我如何使用JQuery获得所需的输出?
感谢。
答案 0 :(得分:1)
也许这会给你一个正确方向的暗示:
// get comma seperated list of all values
var allValues = $('#firstbox').val() + ',' + $('#secondbox').val();
// make an array out of them
var allValuesArray = allValues.split(',');
// sort out repeated values
// by creating a new array 'distinctValues'
var distinctValues = [],
currentValue,
valuesLookup = {};
for (var i = allValuesArray.length - 1; i >= 0; i--) {
currentValue = allValuesArray[i];
if (!valuesLookup[currentValue]) {
valuesLookup[currentValue] = true;
distinctValues.push(currentValue);
}
}
// output the result to the console
console.log(distinctValues.join(','));
答案 1 :(得分:1)
你可以连接这两个,用逗号连接它们。 然后你会有一个逗号分隔的字符串,所以你可以用逗号分割,删除任何重复的值,然后重新加入其余的值。
这样的事情:
var firstbox = $("#firstbox").val(),
secondbox = $("#secondbox").val(),
boxes = firstbox + "," + secondbox,
arr = boxes.split(","),
res = [];
$.each(arr, function(i, el){
if($.inArray(el, res) === -1){
res.push(el);
}
});
$("#res").html(res.join(",").replace(/(^,)|(,$)/g, ""));