Ну, один путь состоит в том, чтобы скомпилировать его как x64 с VS2008
, который Это выполняет, как Вы ожидали бы:
int normalInt = 5;
unsigned long long int num=285212672;
printf(
"My number is %d bytes wide and its value is %ul.
A normal number is %d \n",
sizeof(num),
num,
normalInt);
Для кода на 32 бита, мы должны использовать корректное __ int64 спецификатор формата %I64u. Таким образом, это становится.
int normalInt = 5;
unsigned __int64 num=285212672;
printf(
"My number is %d bytes wide and its value is %I64u.
A normal number is %d",
sizeof(num),
num, normalInt);
Этот код работает на оба компилятора VS на 32 и 64 бита.
Следующее выражение должно (за исключением синтаксических ошибок!) Найти всех братьев и сестер родителя, которые содержат p.find
, а затем найдите эти элементы p.find
и измените их цвет на синий.
$(this).parent().nextAll(":has(p.find)").find(".find").css('background-color','blue');
Конечно, если структура вашей страницы такова, что p.find
] встречается на совершенно другом уровне иерархии (например, брат или сестра бабушки и дедушки), это не сработает.
Я думаю, что единственный способ решить эту проблему - выполнить рекурсивный поиск по элементы после текущего элемента. JQuery не предлагает простого решения этой проблемы. Если вы хотите найти элементы только среди братьев и сестер родительского элемента (как в вашем примере), не требуется выполнять рекурсивный поиск, но вам нужно выполнить несколько поисков.
Я создал пример ( на самом деле это не рекурсивно), который делает то, что вы хотите (я надеюсь). Он выбирает все элементы после текущего нажатого элемента и делает их красными:
<script type="text/javascript" charset="utf-8">
$(function () {
$('#click').click(function() {
var parent = $(this);
alert(parent);
do {
$(parent).find('.find').css('background-color','red');
parent = $(parent).parent();
} while(parent !== false);
});
});
</script>
Мое решение потребует немного изменить разметку, чтобы упростить jQuery. Если это невозможно или непривлекательный ответ, пожалуйста, не обращайте внимания!
Я бы обернул «родительскую» оболочку вокруг того, что вы хотите сделать ...
<div class="find-wrapper">
<div><span id="click">hello</span></div>
<div><p class="find">world></p></div>
</div>
Теперь, чтобы найти найти
:
$(function() {
$('#click').click(function() {
var $target = $(this).closest('.find-wrapper').find('.find');
// do something with $target...
});
});
Это дает вам гибкость в использовании любой разметки и иерархии, которые вы хотите использовать в предложенной мной оболочке, и при этом надежно находить свою цель.
Удачи!