查找并替换值的某些部分(jquery)

时间:2011-01-09 18:33:00

标签: jquery object replace

这可能有点复杂。请参阅下面的代码。

单击图像时,我想更改对象的“值”和“src”中的“MY-ID-NUMBER”。但我希望保留其他信息。

当点击链接时,我想恢复“value”和“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 :(得分:0)

是的,当然。您只需读取值,替换要替换的部件并将其重新设置(并在必要时存储默认值)。但是你需要一些关于你要替换的字符串部分的规则,并确保你的应用程序始终确认。

你应该在某个地方存储默认值,我会在对象中做到这一点。就像是: $('。tdt object')。data('defaultid',defaultid);

答案 1 :(得分:0)

如果我理解正确,您只需要将默认值存储为变量:

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

$('restore-to-default').click(function(){
    // use your defaults in here
});

答案 2 :(得分:0)

要用其他内容替换MY-ID-NUMBER,您可以使用驻留在JavaScripts replace对象中的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/与数字ID不匹配),但会向您显示解决替换问题的方法。