Я думаю, что вы пытаетесь открыть конкретный модал при нажатии на изображение, и если это так, попробуйте следующее:
for($i=0;$i<count($certificazioni);$i++){
$etc=certificazioni[$i];
....
<img src="/cubo/addDocument.png"/ height="24" width="24" data-toggle="modal" data-target="#addEvento<?= $i ?>">
<div class="modal fade" id="addEvento<?= $i ?>" tableindex="-1" role="dialog" aria-labelledby="exampleModalLabel">
<?php echo $etc; ?>
}
вы должны включить модал внутри цикла for, чтобы что у каждого изображения будет свой модальный режим, и когда вы нажмете на изображение 1, откроется модальный 1 ... и вам даже не нужно использовать javascript для этого.
Есть ли другой способ выбора элемента на основе содержимого текста?
Попробуйте это:
$('.js-rating-labelText').filter(function(){
return (/unrated/i).test($(this).text())
}).css('visibility', 'hidden');
Perhaps the issues is with the :contains('Unrated')
part of the function. As changing the text to any random value produces the same result:
$("#ratingDiv:contains('somerandomtext')").hide();
Убедитесь, что ваш код работает после функция js-kit заполнила текст, а не перед ним.
Вот немного html-кода из функции javascript:
<div class="js-kit-rating" id="ratingDiv" style="width: 86px; visibility: hidden;" jk$initialized="true" path="/business/blogger-com" permalink="/businessblogger-com" freeze="yes" starcolor="Golden">
<table class="js-ratings-tableWrapper" border="0" cellSpacing="0" cellPadding="0">
<tbody>
<tr>
<td>
<div class="js-ratingWrapper" style="width: 80px;">
<div style="float: left; cssfloat: left;">
<div style="width: 80px; height: 15px;">
<div class=" js-kit-objIcon" style="width: 16px; float: left; height: 15px; cssfloat: left;" imageURL="//js-kit.com/images/stars/golden.png">
<img style="display: none;" src="//js-kit.com/images/stars/golden.png" complete="complete"/>
<div class=" js-kit-objIcon" style="width: 16px; float: left; height: 15px; cssfloat: left;" imageURL="//js-kit.com/images/stars/golden.png"/>
<div class=" js-kit-objIcon" style="width: 16px; float: left; height: 15px; cssfloat: left;" imageURL="//js-kit.com/images/stars/golden.png"/>
<div class=" js-kit-objIcon" style="width: 16px; float: left; height: 15px; cssfloat: left;" imageURL="//js-kit.com/images/stars/gray.png">
<img style="display: none;" src="//js-kit.com/images/stars/gray.png" complete="complete"/>
<div class=" js-kit-objIcon" style="width: 16px; float: left; height: 15px; cssfloat: left;" imageURL="//js-kit.com/images/stars/gray.png"/>
<div class=" js-rating-labelText">
You might consider using the hide() / show() methods as well.
$(".js-rating-labelText:contains('unrated')").hide()
Исходя из предоставленного вами HTML-кода, я не вижу, откуда берется текст «без рейтинга», для которого вы тестируете.
Однако, если это полнота текста в этом div просто проверьте его напрямую.
if ($('.js-rating-labelText').text() == 'unrated'){
$(this).hide();
}