Найти и заменить определенную часть значения (jquery) - PullRequest
0 голосов
/ 09 января 2011

Это может быть немного сложно. Смотрите код ниже.

Когда изображение нажимается, я хочу изменить «MY-ID-NUMBER» на «value» и «src» объекта. Но я хочу, чтобы остальная информация осталась.

Когда ссылка нажата, я хочу восстановить «значение» и «src», чтобы я мог использовать ту же функцию для следующего изображения, по которому щелкали.

Возможно ли это? Пожалуйста, помогите!

Мой HTML:

<img height="186" width="134" alt="4988" src="i123.jpg">
<img height="186" width="134" alt="4567" src="i124.jpg">

<a class="restore-to-default" href="#">DVD</a>

<div class="tdt">
<object width="960" height="540"><param name="movie" value="http://www.domain.com/v3.4/player.swf?file=http://se.player-feed.domain.com/cinema/MY-ID-NUMBER/123-1/><param name="wmode" value="transparent" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed id="player" name="player" type="application/x-shockwave-flash" src="http://www.player.domain.com/v3.4/player.swf?file=http://se.player-feed.domain.com/cinema/MY-ID-NUMBER/123-1/&display_title=over&menu=true&enable_link=true&default_quality=xxlarge&controlbar=over&autostart=true&backcolor=000000&frontcolor=ffffff&share=0&repeat=always&displayclick=play&volume=80&linktarget=_blank" width="960" height="540"allowFullScreen="true" allowScriptAccess="always"></embed></object>

Мой jquery:

$('img').click(function(){
    var alt = $(this).attr("alt");
    $('.tdt object').val("alt", alt); // Some how change "MY-ID-NUMBER" into the "alt-value" of image
});

$('a').click(function(){
    //restore to "MY-ID-NUMBER"
});

Спасибо!

Ответы [ 3 ]

0 голосов
/ 09 января 2011

Если я правильно понимаю, вам просто нужно сохранить значения по умолчанию как переменные:

var default1 = "";
var default2 = "";

$('restore-to-default').click(function(){
    // use your defaults in here
});
0 голосов
/ 09 января 2011

Чтобы заменить MY-ID-NUMBER чем-то другим, вы можете использовать метод replace, находящийся в объекте JavaScripts String, в этом случае:

// Inside click event handler
var $movieObj = $(".tdt object"); // Cache jQuery object
var imgID = $(this).attr("alt"),
    movieVal = $("param[name=movie]", $movieObj).val(),
    embedSrc = $("embed", $movieObj).attr("src");
$movieObj
    .find("param[name=movie]").val(movieVal.replace(/MY-ID-NUMBER/, imgID)).end()
    .find("embed", $movieObj).attr("src", embedSrc.replace(/MY-ID-NUMBER/, imgID)).end();

Как указал Йохан, вы должны сохранить значение по умолчаниюценность где-то.Мой пример работает только в первый раз (так как /MY-ID-NUMBER/ не совпадает с числовым идентификатором), но показывает вам способ решения проблемы замены.

0 голосов
/ 09 января 2011

Да, конечно. Вы можете просто прочитать значение, заменить часть, которую вы хотите заменить, и установить ее обратно (и при необходимости сохранить значение по умолчанию). Но вам нужны некоторые правила относительно того, какую часть строки вы хотите заменить, и убедитесь, что ваше приложение всегда подтверждает это.

И вы должны где-то хранить значение по умолчанию, я бы сделал это в объекте-вещи. что-то вроде: $ ('. tdt object'). data ('defaultid', defaultid);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...