簡體   English   中英

jQuery檢查元素是否存在以及條件是否存在

[英]Jquery check if element exist and if conditon

我有這樣的代碼:

<?php if ($this->session->userdata('permission') == 4 || $this->session->userdata('permission') == 3) : ?>
            <select name="caffe" id="caffe">
                <?php foreach($caffe as $key) : ?>
                <option value="<?php echo $key['id_caffe'] ?>"><?php echo $key['name'] ?></option>
                <?php endforeach; ?>
            </select>
            <div id="gll_select">
                <script>
                 var caffe = $("#caffe").val();
                 var cff_name = $("#caffe option:first").text();
                 $("#gll_select").load("<?php echo base_url() ?>form/galleries", {id : caffe}, function(){                 
                          $("#gll").on('change', function(){
            var cff_name  = $("#caffe option:selected").text();
            get_gallery(cff_name);
            console.log(cff_name);
        }); 
                 });  
                </script>
            </div>

            <?php else : ?>

            <input type="hidden" name="caffe_name" id="caffe_name" value="<?php echo $caffe_name ?>" />
            <input type="hidden" name="caffe_id" id="caffe_id" value="<?php  if(isset($caffe_id)) echo $caffe_id; ?>" />
            <div id="gll_select">
                <?php if (isset($gallery)) : ?>
            <select name="gll" id="gll">
        <?php foreach ($gallery as $key) : ?>
            <option value="<?php echo $key['id_gallery'] . " " . $key['name'] ?>"><?php echo $key['name'] ?></option>
        <?php endforeach; ?>
            <?php endif; ?>
            </select>
            </div>

            <?php endif ?> 

和jQuery代碼是這樣的:

if ($("#caffe".length)){var cff_name = $("#caffe option:first").text(); }
    else{var cff_name = $("#caffe_name").val();}

問題出在后面-第一條語句始終為true(如果PHP IF statement is FALSE#caffe將不存在)。 似乎是什么問題?

應該

if ($("#caffe").length) { ... }

您的代碼:

if ($("#caffe".length)) { ... }

獲取字符串常量的長度並將其傳遞給jQuery。 通過調用jQuery主函數($)總是會得到非空結果,因此將其強制轉換為if語句一部分的布爾值的結果始終為true。

相反,當測試通過搜索選擇器而返回的jQuery對象的.length屬性時,您正在檢查該數字是否為非零。

$("#caffe".length)更改$("#caffe".length) $("#caffe").length

我想我看到了問題...

if ($("#caffe").length){var cff_name = $("#caffe option:first").text(); }

.length不是選擇器的一部分,它是包裝集的屬性。

暫無
暫無

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

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