我正在尝试使用jquery来获取最接近输入字段的元素,这样我就可以使用元素的text/html作为输入字段的值。
我的jquery看起来是这样的:
<script>
jQuery("[name=currencies]").val(Currency.currentCurrency).change(function() {
$(".moneyPrice").val($(this).closest('.mypro').find($("span.money").text()));
});
</script>
CCD_ 1是动态创建的。
我的HTML看起来是这样的:
<div align="center" class="mypro" style="position:relative; width:270px; height:570px; border:solid 1px #CCC; margin:10px; float:left; overflow:hidden; padding:5px;">
<a class="overlay" href="product.php"></a>
<!--<a class="overlayBtns" href="">Quick View</a>-->
<a class="overlayAdd" href="javascript:{}" onclick="form'.$id.'.submit();"><i class="fa fa-shopping-cart"></i>
Add To Basket</a>
<img width="100%" src="product_images/'.$id.'Image1.jpg" alt="" />
<p style="padding:2px;">'.$product_name.'</p>
<p style="padding:2px;">'.$manu.'</p>
<div style="padding:5px;" class="price">
<div class="prod-price"><span class=money>£'.$price.'.00</span></div>
<form id="form'.$id.'" name="form1" method="post" action="cart.php">
<input type="hidden" name="pid" id="pid" value="'.$id.'" />
<input type="text" name="" class="moneyPrice" value="" />
</form>
</div>
</div>
上面的HTML代码也使用PHP创建了dynamically
。
因此,基本上,当select选项更改时,我的jquery代码就会启动。但我在我的输入字段[object object]
中得到了这个。
如果我将jquery代码更改为:
$(".moneyPrice").val($("span.money").text());
它将在我的输入字段中显示span.money
文本,但问题是它将在所有输入字段中都显示所有动态创建的span.money文本。
因此,我需要获得最接近的span.money
和.moneyPrice
输入字段,然后将span.money显示到最接近的.moneyPrice
输入字段中。
很抱歉,如果这有点令人困惑,我希望我能从你们那里得到一些帮助。
任何帮助都将不胜感激。
编辑:
<select id="currencies" name="currencies">
<option value="GBP" selected="selected">GBP</option>
<option value="USD" >USD</option>
<option value="NGN">NGN</option>
<!--<option value="AUD">AUD</option>
<option value="SGD">SGD</option>-->
<option value="EUR">EUR</option>
</select>
编辑:
我已经创建了一个工作jsfiddle,所以你可以看到问题:
http://jsfiddle.net/v6v146sv/
您要做的就是更改
$(".moneyPrice").val($(this).closest('.mypro').find($("span.money").text()));
至
$(".moneyPrice").val( $(this).closest('.mypro').find("span.money").text() );
我还注意到html代码中的一些主要错误。当html代码中有变量时,您必须用"php-start"answers"php-end"来代替它们。
类似。。。
我想要<?php echo $nr_of_icecreams;?>
冰淇淋
非
我想要$nr_of_icecreams
,这似乎是你在代码中所做的
您的语法不太正确,可能是因为试图在一行中做太多
$(".moneyPrice").val($(this).closest('.mypro').find($("span.money").text()));
应该是
$(".moneyPrice").val($(this).closest('.mypro').find("span.money").text());
请注意,您的find()与相同
var txt = $("span.money").text();// is not a selector
find(txt) // returns jQuery object not a text value but `txt` isn't a valid selector either