我有这样的HTML:
int checkVal = getContext().checkCallingOrSelfPermission(requiredPermission);
我使用jQuery在public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String requiredPermission = "android.permission.WRITE_SECURE_SETTINGS";
int checkVal = checkCallingOrSelfPermission(requiredPermission);
if (checkVal == PackageManager.PERMISSION_GRANTED) {
}
Toast.makeText(this, "WRITE_SECURE_SETTINGS has been granted to the application. You may now continue!",
Toast.LENGTH_LONG).show();
if (checkVal == PackageManager.PERMISSION_DENIED) {
}
Toast.makeText(this, "WRITE_SECURE_SETTINGS has not been granted to the application. Please grant access to continue.",
Toast.LENGTH_LONG).show();
}
}
之前找到所有<div class="inpost">
<a href="">Link1</a>
<div class="">
<a href="">Link2</a>
<div class="">
<a href="">Link3 </a>
</div>
</div>
<a href="">Link4</a>
<a href="">Link5</a>
<a href="">Link6</a>
<a href="">Link7</a> [Size = M, L]
<a href="">Link8</a>
<a name="more"></a> something
<br>
<a href=""></a> something
<br> something
<br>something
<br>
</div>
标记,但是它不起作用。
a
您能建议我该怎么做吗?谢谢。
答案 0 :(得分:4)
尝试将prevAll
集合提取到一个变量中,然后filter
将该集合a
个(以获得匹配的同级兄弟),然后再add
个另外的{{1}带有a
的}(以获取匹配的后代):
.find
const prev = $("[name='more']").prevAll();
prev.filter('a').add(prev.find('a')).each(function(){
console.log(this.textContent);
});
答案 1 :(得分:2)
find
仅选择子节点。
一种执行所需操作的方法是遍历使用prevAll()
获得的所有先前节点,并检查其是否为a
或其他。
如果它不是a
,则使用find
选择所有子a
。
$("[name='more']").prevAll('*').each(function() {
if ($(this).is('a')) {
$(this).css('background-color', 'yellow');
} else {
$(this).find('a').css('background-color', 'yellow');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="inpost">
<a href="">Link1</a>
<div class="">
<a href="">Link2</a>
<div class="">
<a href="">Link3 </a>
</div>
</div>
<a href="">Link4</a>
<a href="">Link5</a>
<a href="">Link6</a>
<a href="">Link7</a> [Size = M, L]
<a href="">Link8</a>
<a name="more">more</a> something
<br>
<a href=""></a>
something<br> something
<br>something<br>
</div>
答案 2 :(得分:0)
简单易行
$("a[name='more']").prevAll('a').each(function() {
// here your logic
})
答案 3 :(得分:0)
您也可以尝试此代码
var flag =0;
jQuery(document).find('a').each(function(index, el) {
if (!flag) {
if ($(this).attr('name') == 'more') {
flag =1;
return false;
}else {
$(this).addClass('myclass');
}
}
});
.myclass {
background: red
}
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<div class="inpost">
<a href="">Link1</a>
<div class="">
<a href="">Link2</a>
<div class="">
<a href="">Link3 </a>
</div>
</div>
<a href="">Link4</a>
<a href="">Link5</a>
<a href="">Link6</a>
<a href="">Link7</a>
[Size = M, L]
<a href="">Link8</a>
<a name="more">link more</a>
something<br>
<a href="">last not styled</a>
something<br>
something<br>something<br>
</div>
答案 4 :(得分:0)
如果在需要的a
之前需要所有a
元素(甚至在其他标记中),请尝试以下操作:
$(function(){
console.log((function(p){return p.filter("a").add(p.find("a"));})($("[name='more']").prevAll()).length);
});
我之所以发布此答案,是因为我的上一篇文章满足了这一需求:“我们需要所有具有相同父项的上a
个”。但是此答案将返回所有上一个a
与每个父母。