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

查找并替换值的某些部分(jquery),jquery,object,replace,Jquery,Object,Replace,这可能有点复杂。请参阅下面的代码 单击图像时,我想更改对象的“value”和“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

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

单击图像时,我想更改对象的“value”和“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>
$('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"
});

谢谢

是的,当然。您可以读取该值,替换要替换的零件并将其设置回原位(必要时存储默认值)。但是,对于要替换的字符串的哪一部分,您需要一些规则,并确保应用程序始终确认这一点

你应该在某个地方存储默认值,我会在对象中这样做。比如:
$('.tdt object').data('defaultid',defaultid)

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

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

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

要用其他内容替换
MY-ID-NUMBER
,可以使用JavaScripts
String
对象中的
replace
方法,在这种情况下:

// 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();

正如Johan指出的,您应该在某个地方存储一个默认值。我的示例仅在第一次起作用(因为
/My-ID-NUMBER/
与数字ID不匹配),但向您展示了解决替换问题的方法。

您好,谢谢您的回答。这个代码不起作用。我觉得这个错误不容易。你能吗$('img')。单击(函数(){//in-click事件处理程序var$movieObj=$(“.tdt对象”);//缓存jQuery对象var imgID=$(this.attr(“alt”)、movieVal=$($param[name=movie]”、$movieObj.val()、embedSrc=$($embed“,$movieObj.attr(“src”);$movieObj.find(“param[name=movie]”.val.replace(/MY-ID-NUMBER/,imgID).end().find(“embed”,$movieObj).attr(“src”,embedSrc.replace(/MY-ID-NUMBER/,imgID)).end();});找到了错误..find(“param[name=movie]”).val(movieVal.replace(/MY-ID-NUMBER/,imgID)缺少一个“)”应该是:.find(“param[name=movie]”.val(movieVal.replace(/MY-ID-NUMBER/,imgID))我很高兴它是这样的!打字错误已经纠正了。谢谢FutureKode的回答。:)