Скрыть элемент, если div пуст для HTML, сгенерированного динамически - PullRequest
0 голосов
/ 15 октября 2018

Ниже приведен фрагмент HTML:

<div class="row activityrow">
   @using (Html.BeginForm("DownloadFile", "GetData", FormMethod.Post, new {        target = "_blank" })){
      <label id='label_@data.test.Replace(".",@function_name).Replace("          ","")'><input type="checkbox" class="selectall" /> Select all</label>
      <div class="containsdata" style="column-count:2;width:100%;">
        @{ var count = 0;}
        @foreach (var item in data.Documents)
        {
           @if (@item.testdata.Replace(" ", "").Replace("-", "_").Replace("&","_").Replace("?", "") == function_value.Name)
           {
             <div class="right8">
               <label>
                  <input type="checkbox" id="chk_@item.ID" value="@item.ID" name="chkId" />
                  <button type="submit" class="btn btn-link" id="@item.ID"          value="@item.ID" name="Id"> @item.Title.Replace("Deploy ","")</button>
                </label>
            </div>
            count++;
        }
    }
 </div>
  @if (count > 0)
  {
    <button type="submit" class="btn btn-primary" id="selectedDownload" name="submit"> Download Selected</button>
  }
  else
  {
     <script>hideSelect('label_@data.test.Replace(".",          
       @function_name).Replace(" ", "")');
     </script>
 }

. Выше я хочу отобразить метку ТОЛЬКО для выбора всех, если число> 0. Я попытался вызвать функцию hideSelect, чтобы сделать это, но это не такт работа.Ниже приведен JS

<script>
  function hideSelect(args) {
  args.hide();
  console.log(args);
}

  1. Он говорит, что hide не является функцией аргументов.Я также попробовал args.style.display = 'none', но это тоже не сработало.
  2. Показанный выше div показывает, что нажата кнопка.Напечатанные аргументы не соответствуют тому, что я щелкнул (для него ничего не печатается).Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Почему бы просто не использовать синтаксис Razor вместо того, чтобы пройти через все проблемы с javascript?

if(data.Documents.Count > 0){
    <label id='label_@data.test.Replace(".",@function_name).Replace(" ","")'><input type="checkbox" class="selectall" /> Select all</label>
}

или

<label id='label_@data.test.Replace(".",@function_name).Replace(" ","")' @if(data.Documents.Count == 0){<text>style='display:none;'</text>}><input type="checkbox" class="selectall" /> Select all</label>
0 голосов
/ 15 октября 2018

Я думаю, что ваша единственная проблема в том, что вы пытаетесь скрыть строку.Давайте превратим эту строку в селектор и используем ее для нацеливания на конкретный элемент, используя jQuery.

function hideSelect(args) {
  $(`#${args}`).hide();
  console.log(args);
}

hideSelect("label_something_something");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="label_something_something">
  Can you see me?
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...