簡體   English   中英

檢查子元素是否已存在

[英]Check if child element already exists

我正在編寫一些代碼,附加一個隱藏的表單字段,並將當前的幻燈片ID附加為值,這是有用的。

    var items = this._core.$stage.children();
    for (var i = 0; i < items.length; i++) {
        if(items[i].classList.contains('active')) {
            var curr_slide = items[i];
            var curr_slide_value = curr_slide.firstElementChild.getAttribute('data-hash');
            console.log(curr_slide);
            console.log(curr_slide_value);
            if(curr_slide.getElementsByTagName('form').length) {
                var form = curr_slide.getElementsByTagName('form');
                if(form[0].getElementsByName('slide') == null) {
                    var input = document.createElement('input');
                    input.value = curr_slide_value;
                    input.type = 'hidden';
                    input.name = 'slide';
                    form[0].appendChild(input);
                    alert("appended form");
                } else {
                    alert("did not append form");
                }
            }
        }
    }

這條線不起作用

if(form[0].getElementsByName('slide') == null) {

此時我需要檢查名稱為“slide”的輸入字段是否已存在,如果沒有,則添加它。

這里是參考我的表單對象

[form#gform_1, gform_1: form#gform_1, item: function, namedItem: function]
    0: form#gform_1
        0: textarea#input_1_1.textarea.medium
        1: textarea#input_1_2.textarea.medium
        2: textarea#input_1_3.textarea.medium
        3: textarea#input_1_4.textarea.medium
        4: input#gform_submit_button_1.gform_button.button
        5: input
        6: input#_gform_submit_nonce_1
        7: input
        8: input.gform_hidden
        9: input.gform_hidden
        10: input#gform_save_1.gform_hidden
        11: input#gform_resume_token_1.gform_hidden
        12: input.gform_hidden
        13: input.gform_hidden
        14: input#gform_target_page_number_1.gform_hidden
        15: input#gform_source_page_number_1.gform_hidden
        16: input

沒有為form元素定義getElementsByName

最兼容的方式應該是:

if (!form[0].elements.slite) {
  // add <input name="slite"> to form[0]
}

嘗試這個:

if(form[0].getElementsByName('slide').length == 0) {

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM