Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Сравнение в jquery (https://javascript.ru/forum/misc/69942-sravnenie-v-jquery.html)

Sayler91 29.07.2017 20:01

Сравнение в jquery
 
Не могу сравнить ячейку "Иван" в условии. Помогите пожалуйста.

<th style="width: 150px;">Имя</th><td><div class="model-value">Иван</div></td>


var a1 = $('th:contains("Имя")').next();

if (a1.text() === "Иван"){
 alert ("Получилось");	
}
else {
 alert ("не получилось");
}

laimas 29.07.2017 20:35

var a1 = $('th:contains("Имя")').next().text()

Sayler91 29.07.2017 20:47

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
var a1 = $('th:contains("Имя")').next().text;
if (a1 === "Иван"){
 alert ("Получилось"); 
}
else {
 alert ("не получилось");
}

</script>
</head>
<th style="width: 150px;">Имя</th><td><div class="model-value">Иван</div></td>
</html>


Так я тоже пробовал, но не получилось (

laimas 29.07.2017 20:55

И не получить, на момент выполнения кода DOM недоступно. Либо скрипт после html, либо в header, но после загрузки DOM

$(function() {
    var a1 = $('th:contains("Имя")').next().text();
    .....
});

Sayler91 29.07.2017 22:00

Цитата:

Сообщение от laimas (Сообщение 460052)
И не получить, на момент выполнения кода DOM недоступно. Либо скрипт после html, либо в header, но после загрузки DOM

$(function() {
    var a1 = $('th:contains("Имя")').next().text();
    .....
});

Извините за мое невежество, но у меня не получается. Я уже по разному строил код, и в начале скрипта, и в конце, и с $(function() {, и без.

рони 29.07.2017 22:14

Sayler91,
<th style="width: 150px;">Имя</th><td><div class="model-value">Иван</div></td>
браузеры не умеет такое рисовать без таблицы

рони 29.07.2017 22:18

Sayler91,
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>$(function() {
var a1 = $('th:contains("Имя")').next().text();
if (a1 === "Иван"){
 alert ("Получилось");
}
else {
 alert ("не получилось");
}
})
</script>
</head>

<table><th style="width: 150px;">Имя</th><td><div class="model-value">Иван</div></td>

</table>
</html>

laimas 30.07.2017 04:57

Цитата:

Сообщение от Sayler91
и в начале скрипта, и в конце, и

Еще сбоку пристроить, вдруг попрет. ) Не получится может ведь и не только потому, что все технически правильно, а оно ни в какую. Ноги этой темы растут из недавней, а насколько я помню там было две ячейки в которых есть текст "Имя". Если вся таблица, это все что было приведено ранее, и за первой ее ячейкой с указанным текстом можно найти Иван, то крупно повезло, а если Иван есть, то только в строке N?

$('th:contains("Имя")') - это уже коллекция ячеек и $('th:contains("Имя")').next() тоже, а вот $('th:contains("Имя")').next().text() вернет текст только первого элемента этой коллекции, все. А вы чего собираетесь сделать?

Sayler91 30.07.2017 09:56

Цитата:

Сообщение от laimas (Сообщение 460069)
Еще сбоку пристроить, вдруг попрет. )

Спасибо за советы. Проблема была в верстке, где-то ошибся, когда создавал.

laimas 30.07.2017 12:39

Цитата:

Сообщение от Sayler91
Спасибо за советы.

Это шутка. У меня скорее вопрос, чем совет, или если понятно, что получите вы значение только первой найденной ячейки и это и нужно.


Часовой пояс GMT +3, время: 04:52.