Javascript 转义URL参数语句if else开关

Javascript 转义URL参数语句if else开关,javascript,Javascript,此代码有一个小问题: function getParameters() { var searchString = document.getElementById('input1').value, params = searchString.split("&"), hash = {}; if (searchString == "") return {}; for (var i = 0; i < params.length; i++) {

此代码有一个小问题:

function getParameters() {
  var searchString = document.getElementById('input1').value,
      params = searchString.split("&"),
      hash = {};

  if (searchString == "") return {};
  for (var i = 0; i < params.length; i++) {
    var val = params[i].split("=");
    hash[unescape(val[0])] = unescape(val[1]);
  }
    console.log(hash);
  //return hash;

  if(val[0] == "class"){ //alert(val[1]); 
    $.each(hash, function( attribute, value ) {
      test_div.setAttribute(attribute,value);
    });
  }
  else if(val[0] == "color"){ //alert(val[1]); 
    $.each(hash, function( attribute, value ) {
      test_div.style[attribute]=value;
    });
  }


  monitor_test_div.innerText = ccc.innerHTML;  
}

例2:

输入:

src=link1&color=red
color=red&src=link1

输出:

 <div src="link2" style="color: green;"></div>
 <div src="link1" style="color: red;"></div>



也许你想要这样的东西:

var test_div = $('#test_divs_id');

for (var i = 0; i < params.length; i++) {
 var val = params[i].split("=");

 var key = unescape(val[0]);
 var val = unescape(val[1]);

 switch(key) {

  case 'class':            // treat 'class' key by ...
   test_div.addClass(val); // ... adding the value as a class
   break;

  case 'src':              // treat 'src' key,
  case 'href':             // treat 'href' key, maybe more ...
   test_div.attr(key, val); //... by adding as an attribute with value
   break;

  default:                 // all other keys...
   test_div.css(key, val); // ... are assumed css style names with value
   break;
 }
function getParameters() {
  var searchString = document.getElementById('input1').value,
      params = searchString.split("&"),
      hash = {};

  if (searchString == "") return {};
  for (var i = 0; i < params.length; i++) {
    var val = params[i].split("=");
    hash[unescape(val[0])] = unescape(val[1]);
  }
    console.log(hash);
  //return hash;
    $.each(hash, function( attribute, value ) {

        if(attribute=="color"){
            test_div.style[attribute]=value;
        }
        else if(attribute=="src"){
            alert(attribute);
            test_div.setAttribute(attribute,value);
        }
    });
}
var test_div=$('test_divs_id');
对于(变量i=0;i
编辑:使用示例+行中可能更多的属性扩展开关

if(val[0] == "class")
您只检查val数组中的第一个元素

您要做的是迭代所有哈希对象,并简单地检查如下属性:

var test_div = $('#test_divs_id');

for (var i = 0; i < params.length; i++) {
 var val = params[i].split("=");

 var key = unescape(val[0]);
 var val = unescape(val[1]);

 switch(key) {

  case 'class':            // treat 'class' key by ...
   test_div.addClass(val); // ... adding the value as a class
   break;

  case 'src':              // treat 'src' key,
  case 'href':             // treat 'href' key, maybe more ...
   test_div.attr(key, val); //... by adding as an attribute with value
   break;

  default:                 // all other keys...
   test_div.css(key, val); // ... are assumed css style names with value
   break;
 }
function getParameters() {
  var searchString = document.getElementById('input1').value,
      params = searchString.split("&"),
      hash = {};

  if (searchString == "") return {};
  for (var i = 0; i < params.length; i++) {
    var val = params[i].split("=");
    hash[unescape(val[0])] = unescape(val[1]);
  }
    console.log(hash);
  //return hash;
    $.each(hash, function( attribute, value ) {

        if(attribute=="color"){
            test_div.style[attribute]=value;
        }
        else if(attribute=="src"){
            alert(attribute);
            test_div.setAttribute(attribute,value);
        }
    });
}
函数getParameters(){ var searchString=document.getElementById('input1')。值, params=searchString.split(&), 散列={}; if(searchString==“”)返回{}; 对于(变量i=0;i
这里是一个工作

如果(val[0]),您希望在'if(val[0]…包含?这将是最后一个url参数的键…我也为我的语言感到抱歉,这对我来说有点困难,因为我是javascript和html新手。不过我会很快接受你的答案,当然!我是javascript新手,请你举个例子好吗?请你在你的问题中添加一个例子,说明你希望生成什么输入什么输出。