鍍金池/ 問答/ HTML問答
淡墨 回答

tab-position 是2才有的,1.4.9沒有

撿肥皂 回答

redirect 這不是重定向嗎,你看下后端返回的http頭部的Location頭部

檸檬藍 回答

^匹配字符串的開始,匹配一個位置;
$匹配字符串的結束,匹配一個位置;
/^[a-zA-Z0-9]+$/的意思就是首先要匹配字符串開始,然后是1到多個字母或者數字,然后是字符串的結束,總結一下就是整個字符串就是由1到多個字母和數字組成的。

你可以使用字符串的match方法進一步查看匹配的情況,test只會返回true或者false,并不提供匹配的具體的字符串:

let reg1=/[a-zA-Z0-9]+/g;
let reg2=/^[a-zA-Z0-9]+$/g;
 
'13232-3213'.match(reg1) // ["13232", "3213"]
'423432432'.match(reg1) // ["423432432"]

'13232-3213'.match(reg2) // null
'423432432'.match(reg2) // ["423432432"]
毀憶 回答

你可以對一個對象用res[i].children來指定他的屬性的值,但是不能用res[i].children[j]來指定一個不存在的數組的索引.



const copyArr = function (arr) {
  const res = [];
  for (let i = 0; i < arr.length; i++) {
    if (arr[i].children) {
      res[i] = { name: arr[i].name ,children:[]}; //這里先定義children
      for (let j = 0; j < arr[i].children.length; j++) {
        res[i].children[j] = [{
          name: arr[i].children[j].name,
        }];
      }
      copyArr(arr[i].children);
    } else {
      res[i] = { name: arr[i].name };
    }
  }
  return res;
};

補充:如果需要正確遞歸處理的話,直接將children取為遞歸返回的數組即可

copyArr = function (arr) {
  let res = [];
  for (let i = 0; i < arr.length; i++) {
    if (arr[i].children) {
      res[i] = { name: arr[i].name ,children:copyArr(arr[i].children)}; //這里先定義children
      
    } else {
      res[i] = { name: arr[i].name };
    }
  }
  return res;
};
礙你眼 回答

在你原來的基礎上改了一點點

<form>
  請選擇你愛好:
  <br>
  <input type="checkbox" name="hobby" id="hobby1"> 音樂
  <input type="checkbox" name="hobby" id="hobby2"> 登山
  <input type="checkbox" name="hobby" id="hobby3"> 游泳
  <input type="checkbox" name="hobby" id="hobby4"> 閱讀
  <input type="checkbox" name="hobby" id="hobby5"> 打球
  <input type="checkbox" name="hobby" id="hobby6"> 跑步
  <br>
  <input type="button" value="全選" onclick="checkall();">
  <input type="button" value="全不選" onclick="clearall();">
  <p>請輸入您要選擇愛好的序號,序號為1-6:</p>
  <input id="wb" name="wb" type="text">
  <input name="ok" type="button" value="確定" onclick="checkone();">
</form>
<script type="text/javascript">
  function checkall() {
    //全選
    var hobby = document.getElementsByTagName("input");
    for (var i = 0; i < hobby.length; i++) {
      if (hobby[i].type == "checkbox") {
        hobby[i].checked = true;
      }
    }
  }

  function clearall() {
    // 全不選
    var hobby = document.getElementsByName("hobby");
    for (var i = 0; i < hobby.length; i++) {
      if (hobby[i].checked == true) {
        hobby[i].checked = false;
      }
    }

  }

  function checkone() {
    //選一個   
    var j = document.getElementById("wb").value;
    var hobby = document.getElementsByName('hobby');
    if (j <= 0 || j > 6) {
      alert("請輸入正確的數字!");
    } else
    if (autoCheck("hobby", 3, 'checkone')) {

      hobby[j - 1].checked = true;
    }

  }
  // 輸入時 限制單個選中的最大個數
  function autoCheck(name, limit, type) {
    var hobby = document.getElementsByName(name);
    if (type == 'checkone') {
      var num = 1;
    } else {
      var num = 0;
    }

    for (var i = 0; i < hobby.length; i++) {
      if (hobby[i].checked) {
        num++
      }
    }
    console.log(num)
    if (num <= limit) {
      return true;
    } else {
      alert('超限了親')
      return false;
    }
  }
  //  直接選擇時限制單個選中的最大個數
  function sigleCheck() {
    var hobby = document.getElementsByName('hobby');
    if (autoCheck("hobby", 3)) {
      for (var i = 0; i < hobby.length; i++) {
        hobby[i].onclick = function (e) {

          if (autoCheck("hobby", 3, 'sigleCheck')) {

            e.target.checked = true;
          } else {
            e.target.checked = false;
          }


        }


      }

    }
  }
  sigleCheck()

</script>
</body>
夢一場 回答

為什么默認標簽這么大

浪婳 回答

time 中的時間都是前綴了0的,所以可以直接用 time 來進行字符串比較大小

const data = [
    { id: 1, time: "2018-07-04 00:04:12" },
    { id: 2, time: "2018-07-04 00:14:12" },
    { id: 3, time: "2018-07-04 00:04:12" },
    { id: 4, time: "2018-07-04 00:00:12" },
    { id: 5, time: "2018-07-04 00:04:02" },
    { id: 6, time: "2018-07-04 00:24:52" },
    { id: 7, time: "2018-07-04 01:04:12" },
    { id: 8, time: "2018-07-04 05:04:12" },
    { id: 9, time: "2018-07-04 07:04:12" },
    { id: 10, time: "2018-07-04 00:00:00" },
]

const max = data
    .reduce((max, m) => {
        return max.time > m.time ? max : m;
    });

console.log(max);
貓小柒 回答

發(fā)請求自動帶上的
mdn cookie


防止XSRF最好的方式是使用CSRF-token。


cookie一般用于保存信息,你向同一個服務器發(fā)請求時會帶上瀏覽器保存的對于那個服務器的cookie,而不管你從哪個網站發(fā)請求。
所以后端需要設置Access-Control-Allow-Origin,瀏覽器會看你的訪問網站是否是被允許的域,如果允許就發(fā)請求并能獲得數據,如果不受允許那么能發(fā)請求但是js腳本無法獲取返回的數據(你仍然能在NetWork中看到返回)。


可以看下這篇文章

乖乖噠 回答

data url的格式是:data:[<mediatype>][;base64],<data>,所以存視頻可以這樣:

data:video/mp4;base64,3bvwAA...
data:video/webm;base64,3bvwAA....
...

video/mp4、video/webm這些就是視頻格式的mime。

如果不存data url格式,可以直接把base64編碼后的數據(就是上面的data)存起來就可以了。

當然,存原始數據,輸出的時候轉base64編碼可能更好。

舊酒館 回答

$(function(){})這個去掉
應該是跳到別的頁面 組件注銷了 回來的時候重新生成dom 但是你這個$(function(){})是頁面加載完畢觸發(fā) 只加載一次

夢若殤 回答

是自動加載還是手動加載?看樣子應該是自動加載的同時渲染數據而卡掉吧,我覺得可以到第九張圖的時候,渲染新圖前,把 autoplay 改為 false,應該就行了吧。

病癮 回答

lz解決了這個問題么?

孤巷 回答

在index.html下通過<script>引入。文件包要放在public下

六扇門 回答

html textarea 按照題主給的寫法也是有兼容問題的,html 和 小程序 里 textarea 換行最好用 html 和 js 模擬 placeholder,寫個 label 置個灰,input 時 display none 之類的。
現(xiàn)成的例子可以參考下 QQ 郵箱 PC WEB 登錄頁。

呆萌傻 回答

可能是密碼錯了吧。你直接輸入https://eclipse.tmatesoft.com/,看可以登錄嗎?

逗婦乳 回答

這個我查了一下沒有相關資料
我很好奇什么樣的業(yè)務場景和產品需求
導致你需要獲取點擊順序?