我有一点复杂的html结构。
我分析它得到这些东西:

Option1: value
Option2: value

从这个类似的html:
<div class="option" id="option-691">
<span class="required">*</span>
<b>Option:</b><br>
<input type="radio" checked="" id="option-value-1250" value="1250" price="1156.0000" name="option[691]">
<label for="option-value-1250">2,35 xx - 1156.00 </label>
<br>
<input type="radio" onchange="recalculateprice();reloadpr();" id="option-value-1251" value="1251" price="506.0000" price_prefix="" points="0" name="option[691]">
<label for="option-value-1251">900 xx - 506.00</label>
<br>
</div>

还有这个
<div class="option" id="option-690">
<span class="required">*</span>
<b>Option:</b><br>
<select name="option[690]">
<option price="1156.0000" price_prefix="+" points="0" value="1249">value01
(+1156.00)
</option>
<option price="1156.0000" price_prefix="+" points="0" value="1248">value02
(+1156.00)
</option>
<option price="1156.0000" price_prefix="+" points="0" value="1247">value03
(+1156.00)
</option>
</select>
 </div>

使用这个我可以从两种类型(输入+选择)中获取数据。
$('#product_options > div.option').each(function() {
 var Opt01 = ( $(this).find('option:selected').parent().parent().find('b').text() + $(this).find('option:selected').text() );
 var Opt02 = ( $(this).find('input:checked').parent().find('b').text() + $(this).find('input:checked').next().text() );

console.log(Opt01);
console.log(Opt02);
 });

但是,我想让Opt01和Opt02在.each()循环之外。我该怎么做?

最佳答案

在函数中声明的变量不能在函数之外访问。在循环之外声明它们:

var Opt01;
var Opt02;

$('#product_options > div.option').each(function() {
  Opt01 = ( $(this).find('option:selected').parent().parent().find('b').text() + $(this).find('option:selected').text() );
  Opt02 = ( $(this).find('input:checked').parent().find('b').text() + $(this).find('input:checked').next().text() );

  console.log(Opt01);
  console.log(Opt02);
 });

关于javascript - 在jQuery .each()循环之外访问变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26750924/

10-12 15:12