2014-10-24 4 views
0

Новичок здесь есть вопрос, который, мы надеемся, достаточно прост:Jquery: Передача ID внутри .append

Так что есть эта строка кода;

  $("#r"+i+"c"+j).append($("<img>", {style:"display:block; margin: 0 auto;", src: imagefile, width: cellDimension + "px", height: cellDimension + "px"})); 

и мне нужно пройти «< IMG>» идентификатор, чтобы я мог взаимодействовать с ним в отдельную функцию. Пытались следующее:

  $("#"+ID+"<img>", 

и

  $("#r"+i+"c"+j).append($("<img>", {style:"display:block; margin: 0 auto;", src: imagefile, width: cellDimension + "px", height: cellDimension + "px"}).attr('ID')); 

Заранее спасибо

+0

вы заинтересованы мимоходом '«#R»+ я +«с»+' значение для нового образа, или вы хотите, чтобы дать изображение новый идентификатор? – PeterKA

+0

Эта строка является частью цикла, который добавляет изображения в div. Мне нужно взаимодействовать с этими изображениями в отдельной функции, чтобы я мог перемещать их, и поэтому мне нужен способ выбора изображений отдельно. Есть ли какие-либо преимущества для добавления «#r» + i + «c» + j в качестве идентификатора вместо любого другого имени/номера? – Sifu

+0

Все зависит от того, на что вы хотите использовать идентификаторы. Если вы хотите выбрать какое-либо конкретное изображение, то обязательно используйте идентификаторы. Однако вы должны иметь в виду, что ни один из двух элементов не имеет одинакового идентификатора; Идентификаторы должны быть уникальными. Я бы рекомендовал использовать класс css и атрибут данных, если это необходимо. Можете ли вы предоставить демо, чтобы мы могли лучше понять то, что вы описали. – PeterKA

ответ

2

Вы могли бы передать id как свойство объекта вы передаете при создании изображения.

$("<img>", { 
    style:"display:block; margin: 0 auto;", 
    src: imagefile, 
    width: cellDimension + "px", 
    height: cellDimension + "px", 
    id: ID_HERE } // ID here - either a string variable, or string literal like "imageId" 
); 

Демо: http://jsfiddle.net/dmpd9a64/

Кроме того, вы можете передать значение с помощью attr, например:

$("<img>", { 
    style:"display:block; margin: 0 auto;", 
    src: imagefile, 
    width: cellDimension + "px", 
    height: cellDimension + "px"} 
).attr('id', ID_HERE); // again, string variable or literal 

Демо: http://jsfiddle.net/dmpd9a64/1/

+0

Спасибо, ваш ответ оказался очень полезным! – Sifu

0

вы можете на это:

$("#r"+i+"c"+j).append($("<img id='"+yourID+"'>", {style:"display:block; margin: 0 auto;", src: imagefile, width: cellDimension + "px", height: cellDimension + "px"})); 
0

Если я вас правильно понял, это то, как я хотел бы сделать это:

$("#r" + i + "c" + j).append($("<img>", { 
    style: "display:block; margin: 0 auto;", 
    src: imagefile, 
    width: cellDimension + "px", 
    height: cellDimension + "px", 
    id: id 
})); 

Вот рабочий код: http://jsfiddle.net/silkster/jqqLmm46/

0

Если вы заинтересованы в переходе родительский идентификатор, так что он может быть частью от ID изображения, вот как это сделать:

$("#r" + i + "c" + j).append(function() { 
    return $("<img>", { 
     //any attributes you'd like to set, such as: 
     class: 'new-image', 
     'data-id': this.id, 
     id: this.id + '-something' /* since IDs must be unique */ 
    }; 
}); 
Смежные вопросы