2014-12-21 3 views
-3

У меня есть веб-страница HTML, в которой мне нужно узнать все элементы, имеющие display:none, и нарисуйте их на display:block с помощью скрипта, который я могу писать на консоли или используя Firebug.Конвертировать все 'display: none' для отображения блока в HTML

Существует уже сценарий для отображения всех скрытых элементов в тегах формы. Мне нужен аналогичный скрипт для display:none до display:block.

var snapHidden = document.evaluate("//input[@type='hidden']", 
     document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); 
    for (var i = snapHidden.snapshotLength - 1; i >= 0; i--) { 
     var elmHidden = snapHidden.snapshotItem(i); 
     elmHidden.style.MozOutline = '1px dashed #666'; 
     elmHidden.type = 'text'; 
     elmHidden.title = 'Hidden field "' + 
      (elmHidden.name || elmHidden.id) + '"'; 
    } 
+1

является 'дисплей: none' добавил через общий файл css? Или через теги 'style = display: none'? Если через теги стиля вы намерены показывать только эти времена, чтобы блокировать или что-то скрытое? – mk117

+0

Возможно, это помогает: [Может ли jQuery получить все стили CSS, связанные с элементом?] (Http://stackoverflow.com/questions/754607/can-jquery-get-all-css-styles-associated-with-an-element # answer-5830517) .... Используйте этот скрипт, чтобы получить стиль 'display: none' и добавить' .show() 'этим элементам, если они имеют этот стиль в его атрибуте. – mk117

+0

Код, который вы опубликовали, не имеет отношения к вашему вопросу. Пожалуйста, отредактируйте свой вопрос и отправьте код, который вы пробовали до сих пор. –

ответ

1

Попробуйте

$('*').filter(function(){ 
    return $(this).css('display') == 'none'; 
}).css('display', 'block') 
+0

Не работает на странице, которую я пытаюсь. Нужно преобразовать только дисплей: none и не все элементы – Rahul

+0

@Rahul Это то, что делает этот ответ, вы пробовали его? Если вы не работаете, как ожидалось, укажите конкретный образец –

+0

. Один недостаток, что относительно SPAN с 'display: none;' set? Вам лучше использовать jQuery '.show()' метод, который я предполагаю для встроенных элементов hanlde. Но наверняка вопрос ОП не имеет смысла imho –

0
$('body').find(':hidden').each(function(){ 
     $(this).show(); 
    }); 

Надеется, что это помогает. Спасибо

+0

Nope.It показывает пустой массив, так как я предполагаю, что его просто берут только объект документа, а не все элементы – Rahul

-1

Это рабочее решение. Первая функция в JavaScript взяты из этой StackOverflow страницы: jquery-check-if-element-has-a-specific-style-property

HTML:

<div id="list1">a_1</div> 
<div id="list2">a_2</div> 
<div id="list3" style="display:none;">a_3</div> 
<div id="list4">b_1</div> 
<div id="list5">b_2</div> 
<div id="list6" style="display:none;">b_3</div> 
<div id="list7">c_1</div> 
<div id="list8" style="display:none;">c_2</div> 
<div id="list9" style="display:none;">c_3</div> 

JAVASCRIPT:

(function ($) { 
    $.fn.inlineStyle = function (prop) { 
     var styles = this.attr("style"), 
      value; 
     styles && styles.split(";").forEach(function (e) { 
      var style = e.split(":"); 
      if ($.trim(style[0]) === prop) { 
       value = style[1];   
      }      
     }); 
     return value; 
    }; 
}(jQuery)); 



$(document).ready(function() { 

    $('*:hidden').each(function(){ 

    var display_prop = $(this).inlineStyle("display"); 
    if(display_prop){ 
    $(this).show(); 
    } 
    }); 

}); 

FIDDLE: http://jsfiddle/d1oae3cL/1/

Смежные вопросы