Обойти некоторые проблемы/проблемы, которые имеют ben, выделилось, я предложу преобразовать строку в нижний регистр сначала и затем назову метод ToTitleCase. Вы могли тогда использовать IndexOf (" МГц") или IndexOf (" O \'") для определения особых случаев, которым нужно более определенное внимание.
inputString = inputString.ToLower();
inputString = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(inputString);
int indexOfMc = inputString.IndexOf(" Mc");
if(indexOfMc > 0)
{
inputString.Substring(0, indexOfMc + 3) + inputString[indexOfMc + 3].ToString().ToUpper() + inputString.Substring(indexOfMc + 4);
}
используйте JQuery, и вы можете это сделать
var isVisible = $('#foo').is(':visible');
Селекторы CSS оптимизированы для поиска наборов совпадающих элементов. Есть несколько библиотек, реализующих эту функцию. JQuery, ExtJS Core, чтобы назвать пару.
Используя Ext Core, я мог бы написать функцию javascript, которая проверяет видимость следующим образом:
// Checks whether the element is currently visible using
// both visibility and display properties
if(Ext.get(el).isVisible()){
alert('it\'s visible');
};
см. http://extjs.com/products/extcore/docs/ ? class = Ext.Element для дополнительных функций Ext Core Ext.Element.
function isVisible(elem) {
return elem.style.visibility !== "hidden";
}
Помните, что visibility: hidden делает элемент скрытым, но этот элемент все еще занимает свое пространство, что может иметь некоторые неожиданные последствия для макета (это также может быть преимуществом, если вы знаете об этом).
Я бы использовал абсолютное позиционирование, чтобы переместить элемент далеко влево, вне возможной ширины экрана. Это выводит элемент из потока, поэтому скрытый элемент не влияет на макет, делает элемент практически невидимым и не имеет недостатков display: none.
.hide {
position:absolute;
left:-3000px;
}
Затем, чтобы определить, скрыт ли элемент, вы можете использовать его свойство offsetLeft:
if( myElement.offsetLeft < 0 ){ /* it's hidden */ }
Если вам нужно определить, находится ли дочерний элемент за пределами экрана (вы не знаете, скрытый ли это элемент или его дочерний элемент), вы можно использовать .offsetParent и цикл while, как описано в статье PPK Find Position .
что может иметь некоторые неожиданные последствия для макета (это также может быть преимуществом, если вы знаете об этом).Я бы использовал абсолютное позиционирование, чтобы переместить элемент далеко влево, за пределы возможной ширины экрана. Это выводит элемент из потока, поэтому скрытый элемент не влияет на макет, делает элемент практически невидимым и не имеет недостатков display: none.
.hide {
position:absolute;
left:-3000px;
}
Затем, чтобы определить, скрыт ли элемент, вы можете использовать его свойство offsetLeft:
if( myElement.offsetLeft < 0 ){ /* it's hidden */ }
Если вам нужно определить, находится ли дочерний элемент за пределами экрана (вы не знаете, скрытый ли это элемент или его дочерний элемент), вы можно использовать .offsetParent и цикл while, как описано в статье PPK Find Position .
что может иметь некоторые неожиданные последствия для макета (это также может быть преимуществом, если вы знаете об этом).Я бы использовал абсолютное позиционирование, чтобы переместить элемент далеко влево, за пределы возможной ширины экрана. Это выводит элемент из потока, поэтому скрытый элемент не влияет на макет, делает элемент практически невидимым и не имеет недостатков display: none.
.hide {
position:absolute;
left:-3000px;
}
Затем, чтобы определить, скрыт ли элемент, вы можете использовать его свойство offsetLeft:
if( myElement.offsetLeft < 0 ){ /* it's hidden */ }
Если вам нужно определить, находится ли дочерний элемент за пределами экрана (вы не знаете, скрытый ли это элемент или его дочерний элемент), вы можно использовать .offsetParent и цикл while, как описано в статье PPK Find Position .
Я бы использовал абсолютное позиционирование, чтобы переместить элемент далеко влево, за пределы возможной ширины экрана. Это выводит элемент из потока, поэтому скрытый элемент не влияет на макет, делает элемент практически невидимым и не имеет недостатков display: none.
.hide {
position:absolute;
left:-3000px;
}
Затем, чтобы определить, скрыт ли элемент, вы можете использовать его свойство offsetLeft:
if( myElement.offsetLeft < 0 ){ /* it's hidden */ }
Если вам нужно определить, находится ли дочерний элемент за пределами экрана (вы не знаете, скрытый ли это элемент или его дочерний элемент), вы можно использовать .offsetParent и цикл while, как описано в статье PPK Find Position .
Я бы использовал абсолютное позиционирование, чтобы переместить элемент далеко влево, за пределы возможной ширины экрана. Это выводит элемент из потока, поэтому скрытый элемент не влияет на макет, делает элемент практически невидимым и не имеет недостатков display: none.
.hide {
position:absolute;
left:-3000px;
}
Затем, чтобы определить, скрыт ли элемент, вы можете использовать его свойство offsetLeft:
if( myElement.offsetLeft < 0 ){ /* it's hidden */ }
Если вам нужно определить, находится ли дочерний элемент за пределами экрана (вы не знаете, скрытый ли это элемент или его дочерний элемент), вы можно использовать .offsetParent и цикл while, как описано в статье PPK Find Position .
У дисплея есть недостатки: нет..hide {
position:absolute;
left:-3000px;
}
Затем, чтобы определить, скрыт ли элемент, вы можете использовать его свойство offsetLeft:
if( myElement.offsetLeft < 0 ){ /* it's hidden */ }
Если вам нужно определить, находится ли дочерний элемент за пределами экрана (вы не знаете, скрытый ли это элемент или его дочерний элемент), вы можно использовать .offsetParent и цикл while, как описано в статье PPK Find Position .
У дисплея есть недостатки: нет..hide {
position:absolute;
left:-3000px;
}
Затем, чтобы определить, скрыт ли элемент, вы можете использовать его свойство offsetLeft:
if( myElement.offsetLeft < 0 ){ /* it's hidden */ }
Если вам нужно определить, находится ли дочерний элемент за пределами экрана (вы не знаете, скрытый ли это элемент или его дочерний элемент), вы можно использовать .offsetParent и цикл while, как описано в статье PPK Find Position .
Переключение видимости элемента от Кента - ненавязчивый, семантически допустимый способ представления контента, который будет ухудшаться для браузеров, не поддерживающих CSS.
Проверка фокуса будет работать независимо от того, виден родительский элемент или нет.
var isVisible = true;
try{
document.getElementById("target").focus();
}catch(err){
isVisible = false;
}
Очевидно, что он должен работать для ввода или ссылки, но для другого элемента я не уверен.
Я изучал ту же проблему перед использованием jQuery, но на этот раз моя цель - сосредоточить внимание на первом доступном поле на форме . В результате получается такой код:
$(":text:visible:enabled").filter(function(){
return $(this).parents.filter(function(){
return this.style.display == "none";
}).size()==0;
}).slice(0,1).focus();
Он также будет работать для скрытых / невидимых родителей.