Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.12.2013, 12:37
Аспирант
Отправить личное сообщение для housewm Посмотреть профиль Найти все сообщения от housewm
 
Регистрация: 21.12.2010
Сообщений: 41

Как найти текст в нескольких div
есть div.

В этом диве n количество div'ов. В них содержится текст

<div class="main">
   <div class="child">текст1</div>
   <div class="child">текст2</div>
   <div class="child">текст3</div>
</div>


есть переменая а, ее значение = текст2

нужно в дивах c классом child найти div который содержит тот же текст что и переменная

не могу понять как это сделать, подскажите в каком направлении копать
Ответить с цитированием
  #2 (permalink)  
Старый 23.12.2013, 13:33
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от housewm
нужно в дивах c классом child найти div который содержит тот же текст что и переменная
http://jquery-docs.ru/selectors/containstext/#text

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
$(function (){
	var txt='текст2';
	alert($('.child:contains("'+txt+'")').text());
});
</script>
</head>
<body>
<div class="main">
	<div class="child">текст1</div>
	<div class="child">текст2</div>
	<div class="child">текст3</div>
</div>
</body>
</html>

Последний раз редактировалось ksa, 23.12.2013 в 13:36.
Ответить с цитированием
  #3 (permalink)  
Старый 23.12.2013, 13:43
Аспирант
Отправить личное сообщение для housewm Посмотреть профиль Найти все сообщения от housewm
 
Регистрация: 21.12.2010
Сообщений: 41

ага пробовал этот селектор видимо просто не разобрался как парвильно работает

а если мне нужно использовать условие могу ли я сделать так?
if ($('.child:contains("'+txt+'")').text()){
//действие
}
Ответить с цитированием
  #4 (permalink)  
Старый 23.12.2013, 13:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

housewm,
а где условие то ? и вы неучитываите что элементов много может быть
Ответить с цитированием
  #5 (permalink)  
Старый 23.12.2013, 13:49
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от housewm Посмотреть сообщение
а если мне нужно использовать условие могу ли я сделать так?
if ($('.child:contains("'+txt+'")').text()){
//действие
}
Мочь-то можно... Только что тебе даст такое "условие"?
Ведь это аналогично вот этому

if ('строка'){
   alert(1);
};
Ответить с цитированием
  #6 (permalink)  
Старый 23.12.2013, 13:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123


<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
    <style type="text/css">
    </style>
    <script type="text/javascript">
        $(function () {
            var txt = 'текст2';
            $(".child").each(function (indx, element) {
                if ($(element).is(':contains("' + txt + '")')) alert([indx, $(this).text()])
            });;
        });
    </script>
</head>

<body>
    <div class="main">
        <div class="child">текст1</div>
        <div class="child">текст2</div>
        <div class="child">текст3</div>
    </div>
</body>

</html>
Ответить с цитированием
  #7 (permalink)  
Старый 23.12.2013, 13:59
Аспирант
Отправить личное сообщение для housewm Посмотреть профиль Найти все сообщения от housewm
 
Регистрация: 21.12.2010
Сообщений: 41

Сообщение от ksa Посмотреть сообщение
Мочь-то можно... Только что тебе даст такое "условие"?
Ведь это аналогично вот этому

if ('строка'){
   alert(1);
};
ну как оно мне даст что текст будет искать в определенных дивах
Ответить с цитированием
  #8 (permalink)  
Старый 23.12.2013, 14:02
Аспирант
Отправить личное сообщение для housewm Посмотреть профиль Найти все сообщения от housewm
 
Регистрация: 21.12.2010
Сообщений: 41

Сообщение от рони Посмотреть сообщение

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
    <style type="text/css">
    </style>
    <script type="text/javascript">
        $(function () {
            var txt = 'текст2';
            $(".child").each(function (indx, element) {
                if ($(element).is(':contains("' + txt + '")')) alert([indx, $(this).text()])
            });;
        });
    </script>
</head>

<body>
    <div class="main">
        <div class="child">текст1</div>
        <div class="child">текст2</div>
        <div class="child">текст3</div>
    </div>
</body>

</html>
с each пробовал немного не подходит мне, тк я делаю условие

if(нашел совпадение){
//ничего не делаем
}
else{
//добавляем строчку
}


так вот если each использую то добавляется столько строчек сколько дивов не совпавших с условием
Ответить с цитированием
  #9 (permalink)  
Старый 23.12.2013, 14:07
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от housewm Посмотреть сообщение
я делаю условие
if(нашел совпадение){
//ничего не делаем
}
else{
//добавляем строчку
}
Так тогда и пиши например так

if($('.child:contains("'+txt+'")').length>0){
//ничего не делаем
}
else{
//добавляем строчку
}
Ответить с цитированием
  #10 (permalink)  
Старый 23.12.2013, 14:14
Аспирант
Отправить личное сообщение для housewm Посмотреть профиль Найти все сообщения от housewm
 
Регистрация: 21.12.2010
Сообщений: 41

Сообщение от ksa Посмотреть сообщение
Так тогда и пиши например так

if($('.child:contains("'+txt+'")').length>0){
//ничего не делаем
}
else{
//добавляем строчку
}
а зачем .length ? мне ведь точное совпадение нужно

сделал вот так

if($('.child:contains("'+txt+'")').text())


работает
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите как отобразить текст. potkin Общие вопросы Javascript 17 26.10.2017 15:09
прогкрутка к якорям cOAPerator Общие вопросы Javascript 20 27.08.2013 03:30
Как побороть "активированный" DIV? XPyCTang Events/DOM/Window 1 21.11.2012 13:01
как найти и удалить массив из массива? FRIE Общие вопросы Javascript 8 14.03.2011 15:48
На входе HTML получить на выходе просто текст, как? Dmitry Общие вопросы Javascript 2 25.08.2008 10:42