javascript - 使用 jQuery,当单击最近的单选按钮时尝试检索图像 src 值

标签 javascript jquery dom

我有一个页面,其中包含许多 div,如下所示,它是一个颜色样本页面,即拇指大小的图像。

我想做的是,当用户单击单选按钮时,获取标签元素中包含的图像的源值,然后用它替换主产品图像。但我的代码不断返回未定义的值。我已经尝试了下面代码的几种变体,我尝试了jQ的closest()、find()、next()以及prop(“src”)和attr()。

('.swatches-radio-btn').each(function(){
$(this).click(function(){
    var currImg = $(this).closest('label img').prop( "src" ); //not working
    alert(currImg); //returns undefined
    $('#productMainImage img').prop('src', currImg);
})
})

标记是这样的,

<div id="productMainImage">
<img src="images/PP_watercress87.jpg" alt="Pepper Pot Silk" />
</div>

<div class="threads-swatch-wrapper">
<input type="radio" name="id[10]" value="129" id="attrib-10-129" class="swatches-radio-btn" />
<label class="attribsRadioButton thread-opts" for="attrib-10-129">Artichoke <br />
    <img src="images/attributes/PP_artichoke77.jpg" alt="" width="260" height="320" />
</label>
</div>

最佳答案

我建议:

$('input[type="radio"]').change(function(){
    var currImg = $(this.labels[0]).find('img').prop('src');
    $('#productMainImage img').prop('src', currImg);
});

JS Fiddle demo .

或者,如果您使用的浏览器未实现 HTMLInputElementlabels 属性,您可以改用:

$('input[type="radio"]').change(function(){
    var currImg = $(this).closest('div').find('label img').prop('src');
    $('#productMainImage img').prop('src', currImg);
});

JS Fiddle demo .

引用文献:

关于javascript - 使用 jQuery,当单击最近的单选按钮时尝试检索图像 src 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23878666/

相关文章:

javascript - jQuery 间歇性 .on ('click' )

javascript - 在页面中嵌入外部网站

javascript - 在一个文件中使用 JavaScript 格式化 XML 数据

javascript - 检查时间是否与 Moment.js 相同

php - 服务器 header 、引荐来源网址等

javascript - 如何根据现有页面中的内容调整 Bootstrap 选项卡?

jquery - 单击复选框的事件

javascript - jQuery:动态 HTML 维度

javascript - 渲染时 Handlebars 部分打印 [Object object]

javascript - 在所有其他脚本之后加载 javascript