在嵌套数组代码中混淆

时间:2017-06-20 00:28:30

标签: swift

我只是在为明确指定类型:challenge时出现错误的原因感到困惑。我知道类型推断可以确定它的数组。但为什么会出错呢?

var template = document.querySelector("#wrapper").innerHTML;
var a = 1;

function addFields() {
  var wrapper = document.createElement("div");
  wrapper.innerHTML = template;
  wrapper.querySelector("label:last-of-type").innerHTML = "Segment " + (++a) + ":";
  document.getElementById('wrapper').appendChild(wrapper);
}

window.onload = function() {
  document.querySelector("#more_fields").addEventListener("click", function(e) {
    e.preventDefault();
    addFields();
  });
}

错误:无法将string类型的值转换为期望的元素类型字符串。

正确的方法是简单地写:

<div class="container">
  <h2>Form</h2>
  <form>
    <div id="room_fields">
      <div class="content" id="wrapper">
        <label style:>Segment 1:</label>
        <div class="segment">
          <div class="form-group">
            <label>IN:</label>
            <input name="seg-in[]" type="text">
          </div>
          <div class="form-group">
            <label>OUT:</label>
            <input name="seg-out[]" type="text">
          </div>
          <div class="form-group">
            <label>Duration:</label>
            <input name="seg-dur[]" type="text">
          </div>
        </div>
      </div>
    </div>
    <br><br>

    <div style="text-align: right;">
      <button id="more_fields">+</button>
    </div>
    <br>
    <br>
    <button type="submit" class="btn btn-default">Submit</button>
  </form>
</div>

谢谢!

1 个答案:

答案 0 :(得分:2)

challenges必须是[[String]]类型 - 它是一个字符串数组数组

你可以说

var challenges: [[String]] = [walkingChallenges, runningChallenges]

var challenges = [walkingChallenges, runningChallenges]

让Swift推断出类型