2010-11-17 2 views
3

У меня есть следующий пиксель отслеживания:нужно добавить переменную в конце IMG SRC

<img id="pixel" alt="" width="1" height="1" src="https://domain.com/file.cfm?amount={tag_amount}&amp;tracking={tag_invoicenumber}&amp;transtype=sale&amp;merchantID=29562" /> 

Мне нужно добавить переменную в конец исходного изображения. Вот jQuery, с которым я играю.

$('img#pixel [src]').append(affiliateCode); 

Это не работает. Какие-либо предложения?? Заранее спасибо!

ответ

7

Append для полной DOM только объекты, вы хотите добавить в атрибут Src.

Try:

var affiliateCode = '12345'; 

$('#pixel').attr('src', $('#pixel').attr('src') + '&affiliate=' + affiliateCode); 

Очевидно изменение названия параметра на то, что вам нужно.

+0

Работал отлично! Благодарю. Я сбросил '& affiliate ='. Не нужна эта штука. –

+0

Вполне хорошо, я бы предложил использовать модификацию Джона Хартсока, чтобы сделать переменную $ ('# pixel') переменной и повторно использовать ее, поскольку это более эффективно. – Orbling

2
var affiliateCode = "affiliateCode=1234"; 
var myimage = $('img#pixel'); 
myimage.attr("src", myimage.attr("src") + "&" + affiliateCode); 

если филиал код является статическим, это более эффективно

$('img#pixel').attr("src",function (index, attribute) { 
    attribute += "&affiliateCode=1234"; 
}); 
+0

Это немного лучше, чем у меня с точки зрения эффективности, поскольку привязка объекта jQuery к переменной, а не повторение селектора дважды приводит к тому, что Sizzle нужно использовать только один раз, одноэтапное унифицирование. – Orbling

+0

@orbling ... @mmsa ... Собственно; если партнерский код статичен, то это более эффективно. –

+0

Да, полностью забыл, что у attr() была вариация attr (строка, функция). Очень аккуратный. :-) – Orbling

0
$('#pixel').attr('src', $('#pixel').attr('src')+'&affiliateCode='affiliateCode); 
1

Вы можете сделать это так:

var srcVal = $('img#pixel').attr('src'); 
$('img#pixel').attr('src', srcVal + affiliateCode); 
0

Я думаю, что приведенный выше код:

var affiliateCode = '12345'; 
$('#pixel').attr('src', $('#pixel').attr('src') + '&affiliate=' + affiliateCode); 

был enterd правильно, но редактор StackOverflow в делает странные вещи с кодом. параметр &affiliate должен содержать амперсанд, а затем amp и точку с запятой.

Смежные вопросы