【发布时间】:2015-03-10 12:35:09
【问题描述】:
我有这样一个 DOM
<html>
you clicked <span>0</span> times
<div class="button" countSelect=">span">
you clicked <span>0</span> times.
</div>
</html>
这是我的javascript:
function increase(i,e){
var $e = jQuery(e);
$e.text($e.text() * 1 + 1);
}
function handle(){
var selectText = $(this).attr('countSelect');
$(this).find(selectText).each(increase);
}
$(function(){
$('.button').click(handle);
});
我需要什么作为countSelect-Attribute-value 来选择第一个跨度而不更改 javascript?
我以前做过什么?
- 我尝试使用
*:root > span。 - 我尝试使用
*:parent:parent > span。
两者都解析为0的长度。
FIDDLE
顺便说一句:我可以拥有额外的插件或额外的库。
【问题讨论】:
-
.find 只能用于查找所选元素的后代。因此,根据您的代码,没有选择器可以放入该属性中以找到第一个跨度。
-
并使用额外的插件?
-
你不需要另一个插件,你只需要使用不同的起始元素(或没有起始元素)
-
@KevinB 正如我所写,我只能更改属性或添加更多 javascript,而不是更改现有的 javascript。
-
"不更改现有的 javascript" 这没有意义。添加更多的 javascript 将改变现有的 javascript。请澄清。
标签: jquery jquery-ui jquery-selectors