#javascript #jquery
#javascript #jquery
Вопрос:
я хочу достичь этого :
for (i = <?php echo $current_i ?> /*then I get augmented in javascript */;i<max;i ){
$('#anyid****')./* my actions goes here */
}
здесь я хочу поместить счетчик I javascript в селектор
, как я мог это сделать???
Комментарии:
1. вы, должно быть, шутите? в php вы объединяете с. в javascript с помощью
2. спасибо, но я думаю, что мой вопрос ясен, и я нашел ответ
3. Как правило, вы не хотите запускать селекторы в цикле. Сделайте единый выбор всех элементов DOM, затем выполните
/* my actions go here */
часть в наборе. Существует множество селекторов для размещения сложного выбора, подобного тому, что вы пытаетесь.4. в моей ситуации я не могу использовать селекторы, о которых вы говорите, потому что у меня есть несколько divs с идентификаторами, и они влияют на некоторые входные данные с помощью OtherId, и моя проблема в том, что входные данные и divs дополняются скриптом (нажмите, чтобы добавить другой), тогда я не могу использовать $ (this) или любой$ (div)
Ответ №1:
Извините, я не знаю PHP, но я надеюсь, что вы хотели сделать что-то вроде приведенного ниже
for (i = <?php echo $current_i ?> ;i<max;i ){
$('#div' i)/*do the rest*/
}
для конкатенации, я надеюсь, что это то же самое в PHP. Также вы можете преобразовать i в string .
Просто для понимания OP
в строке 2 $('#div' i)
i
указан целочисленный тип, а другие $(#div)
имеют тип string . Для jquery необходим строковый селектор для извлечения соответствующего узла dom, и для этого i
его также необходимо преобразовать / преобразовать в строковую переменную, чтобы она могла объединять / добавлять / присоединять с префиксной строкой, которая есть в этом примере #div
. в c # вы добавляете 2 строки, подобные этой var result = "#div" i.ToString();
, и я не знал эквивалента PHP для
в c #, поэтому извините в начале поста. Теперь вы понимаете?
Комментарии:
1. я не уверен, что вы имеете в виду, но да, я хочу, чтобы селектор в jquery выбирал все больше идентификаторов
2. да, я понимаю, что эквивалент php равен
<?php echo "div".(string)$i; ?>
Ответ №2:
for (i = <?php echo $current_i ?> /*then I get augmented in javascript */;i<max;i ){
$('#anyid' i)./* my actions goes here */
}
вы можете просто объединить его со строкой вашего селектора.
Ответ №3:
Это не очень похоже на jQuery. Предполагая, что элементы имеют идентификаторы с непрерывной частью и находятся в порядке, вы можете присвоить каждому элементу общий класс и использовать slice
[docs] и each
[docs]:
$('.commonClass').slice(<?php echo $current_i ?>, max 1).each(...
Вы могли бы предложить лучшие решения, если бы подробнее рассказали о своей проблеме. Например. предоставление каждому элементу увеличивающегося идентификатора не кажется преднамеренным решением.
PS: Я бы тоже не стал помещать туда переменную PHP, может быть, сначала присвоить значение переменной JavaScript.
Ответ №4:
было бы намного чище, если бы вы разделили php и javascript следующим образом.
js_var.php
<?php
$phpvars = array(
'max' => 12,
'fop' => 22
);
function phpvar($key = NULL){
global $phpvars;
return ($key)
? json_encode($phpvars[$key])
: json_encode($phpvars);
}
?>
использование
<?php include('phpvars.php');?>
<script type="text/javascript">
window.phpvars = <?=phpvar()?>;
var max = phpvars.max;
for (var i=0;i<max;i ){
console.log(i);
}
console.log(php);
</script>