0

我正在使用以下脚本根据输入的值更改图像。

var siteLogo = $('input#site-logo').val();
$('#site-logo, img').attr("src", siteLogo);

html

 <div id=site-logo>
<img src="default.png" width="285px" height="100px">
</div>

<input id="site-logo" class="input-xlarge" placeholder="http://" type="text">
<button id="add-site-logo" class="btn" href=""> Add</button>

我的问题是它将页面上的所有图像更改为站点徽标中的值。我该如何做到这一点,以便更改站点徽标中的值而不更改页面上的其他随机内容?

4

4 回答 4

3

尝试

var siteLogo = $('input#site-logo').val();
$('#site-logo img').attr("src", siteLogo);
于 2013-05-03T14:58:32.797 回答
2

这里有两个问题:

  • id为两个元素设置了一个字段。它应该是独一无二的。
  • 您正在使用的选择器选择多项内容:#site-logo选择器选择具有site-logoID 的项目,img选择页面上的所有图像。选择器中的逗号基本上定义了所有选择器中的“或”;如果匹配#site-logo 匹配,它将选择一个元素img

将您的选择器更改为:

$("#site-logo img").attr("src", siteLogo);

在这种情况下,您需要为您的<input>标签使用不同的 id。

于 2013-05-03T15:00:53.017 回答
1

从 jQuery 选择器中删除 ','

$('#site-logo img').attr("src", siteLogo);

$('#site-logo img')表示里面的所有图像#site-logo

$('#site-logo, img')意味着#site-logo加上所有图像。

于 2013-05-03T14:57:59.737 回答
1

试试这个:

$('img','#site-logo')

或更好:

$('#site-logo').find('img')
于 2013-05-03T14:58:02.623 回答