Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Вопрос по jQuery, проверить, соответствует ли имя файла картинки и тогда выполнить, к (https://javascript.ru/forum/jquery/83577-vopros-po-jquery-proverit-sootvetstvuet-li-imya-fajjla-kartinki-i-togda-vypolnit-k.html)

12345678 15.01.2022 20:32

Вопрос по jQuery, проверить, соответствует ли имя файла картинки и тогда выполнить, к
 
Доброго времени суток.

Было вот так
<td class="featured column-featured" data-colname="Featured product">Yes</td>


и определялось это вот так

var specific_post_edit_row = $( '#edit-' + id ),
            specific_post_row = $( '#post-' + id ),
            featured_product = false;
    if( $( '.column-featured', specific_post_row ).text() == 'Yes' ) featured_product = true;
                ...
    $( ':input[name="featured"]', specific_post_edit_row ).prop('checked', featured_product );


Я поменял логику и теперь за место слова Yes выводится картинка или несколько таковых (в зависимости от установленных чекбоксов).

Как теперь определять состояние, т.е. при наличии картинки с определённым именем (к примеру hide.png) скрипт выполнял далее свои обязанности.

P.S. Картинок в теге может быть и несколько, среди них надо обнаружить с определённым именем. Т.е. может быть и так
<td class="featured column-featured" data-colname="Featured product"><img width="32" height="32" src="https://site.ru/vote.png"><img width="32" height="32" src="https://site.ru/hide.png"><img width="32" height="32" src="https://site.ru/imagestaff.png"></td>

ksa 15.01.2022 20:57

12345678, закладываться на содержимое элемента не самый лучший подход.
Есть ведь классы, всякие data-атрибуты...

12345678 15.01.2022 20:59

ksa
Спасибо что откликнулись. Класс добавить не проблема. Как будет в варианте с классом?

ksa 15.01.2022 21:07

12345678, вариант с картинкой и классом

<!DOCTYPE html>
<html>
<head>
<script src='https://code.jquery.com/jquery-latest.min.js'></script>
<!--
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
<script src='tmp.js'></script>
-->
<style>
</style>
<script>
$(_ => {
	let o = $('.column-featured img[src$="vote.png"]')
	if (o.length) alert('ok')
	o = $('.column-featured')
	if (o.hasClass('ok')) alert('ok')
})
</script>
</head>
<body>
<table>
<td class="featured column-featured ok" data-colname="Featured product">
	<img width="32" height="32" src="https://site.ru/vote.png" />
	<img width="32" height="32" src="https://site.ru/hide.png" />
	<img width="32" height="32" src="https://site.ru/imagestaff.png" />
</td>
</body>
</html>

12345678 15.01.2022 21:17

Я модернизировал исходный код согласно примеру

if( $( '.column-featured img[src$="vote.png"', specific_post_row ) ) featured_product = true;


Но он почему то не работает....

рони 15.01.2022 21:18

Цитата:

Сообщение от 12345678
Но он почему то не работает....

Цитата:

Сообщение от 12345678
img[src$="vote.png"',

:-?

12345678 15.01.2022 21:26

Я попробовал так, но это также не помогло...

if( $( 'img[src$="vote.png"', specific_post_row ) ) featured_product = true;
Галочка всё время в состоянии "поставлена"

рони 15.01.2022 21:28

12345678,
скобку забыли!!! #5

12345678 15.01.2022 21:31

рони
Где именно?

ksa 15.01.2022 21:32

Цитата:

Сообщение от 12345678
img[src$="vote.png"

img[src$="vote.png"]

;)


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