Connect with us

Iowa

Iowa State basketball touches its ceiling in win over Texas Tech | Hines

Published

on

Iowa State basketball touches its ceiling in win over Texas Tech | Hines


KANSAS CITY – What would it look like, if you closed your eyes and let your imagination soar, for Iowa State to play its best basketball? 

The defense would be electric, connected and furious. Joshua Jefferson would be dictating and dominating offensively. Tamin Lipsey would make every critical play. The bigs would be tough, active and productive. Loose balls and tough plays would both go in the Cyclones’ direction. There would be contributions up and down the rotation. 

It would look a lot like what happened at T-Mobile Center on Thursday, March 12. 

Advertisement

The seventh-ranked Cyclones unleashed perhaps their best and most complete performance of the season in their 75-53 smackdown of No. 14 Texas Tech to advance to the Big 12 Tournament semifinals. 

“Against that caliber of opponent,” said Iowa State senior Nate Heise, “that’s probably our best game. That’s always what you want to be able to do at the end of the year and be able to stack it – yesterday to today and hopefully tomorrow. 

“It was fun to watch how everyone stepped up today.” 

It was fun to watch an excellent team play excellently, truth be told. These Cyclones have touched their ceiling before, but those wins against Kansas and Houston are now nearly a month old.  When these Cyclones get going, there are only a handful of teams that can stop them. 

Advertisement

The Red Raiders weren’t one of them. 

“You can tell,” Texas Tech coach Grant McCasland said, “they had an edge and had the right edge in order to win this basketball game.” 

There was lots to love for Iowa State. Between Lipsey’s 20 points (and four made 3s), Heise’s tip dunk, Jamarion Batemon’s timely shooting and the physical, Killyan Toure’s never-say-die hustle and the efficient play of centers Blake Buchanan and Dom Pleta, Iowa State’s play was a symphony.  

Advertisement

Most impressive of it all was how Jefferson directed the music. 

Iowa State’s All-American was at the absolute height of his powers. The 6-foot-9, 240-pound power forward wasn’t so much playing basketball as he was controlling everything around him. And I mean everything. I’m not ruling out that space and time were under his direction. 

His 18 points, 13 rebounds, six assists, two blocks and a steal only hint at the extent to which he influenced the game, but Jefferson’s command was exquisite. It seemed, at times, that whatever unfolded on the court was doing so only with his permission and at his instruction.  

Advertisement

“I think that was huge,” Jefferson said of his play and feel for the game. “Playing on the fly and playing with freedom and playing with confidence is the biggest thing for us. 

“That’s when we’re at our best – when I’m more vocal and leading that way. Sometimes I can fall away from that if I’m not confident in myself. If I’m being confident in myself, that’s going to feed the team.” 

And Iowa State ate well. 

play

Iowa State basketball beats Texas Tech, advances to Big 12 semifinals

Iowa State basketball beats Texas Tech, advances to Big 12 semifinals

Advertisement

The Cyclones shot 53.6% from the field and 38.9% from 3-point range. They committed just 10 turnovers and led by as many as 24, which is impressive, sure, but when you consider the Cyclones trailed by 12 after the first six minutes, it’s incredible.  

Texas Tech shot 33.9% from the floor, 31% from deep and saw the Cyclones just steamroll right into the semis where a rematch with No. 2 Arizona awaits. 

The Wildcats dispatched the Cyclones with ease, 73-57, in Tucson last week, but this looked like a different Iowa State squad playing at an entirely different level than what happened at the McKale Center. 

“We all believe it’s sustainable,” Lipsey said. “We’re playing our best basketball of the year. That’s exactly what you want to do this point in the year. 

Advertisement

“We can play like this moving forward.” 

If they can and if they do, the Cyclones are going to be push right against their ceiling and, maybe, push themselves into the Final Four. 

“We played well today,” said Iowa State coach T.J. Otzelberger. “Was it our best? I think our best is still in front of us.” 

After a day like this one, it’s not hard to imagine what that might look like and where it could take them. 

Iowa State columnist Travis Hines has covered the Cyclones for the Des Moines Register and Ames Tribune since 2012. Contact him at thines@amestrib.com or (515) 284-8000. Follow him on X at @TravisHines21.

Advertisement



Source link

Iowa

Iowa State women’s basketball team adds transfer guard from Kent State

Published

on

Iowa State women’s basketball team adds transfer guard from Kent State


Iowa State women’s basketball team adds transfer guard from Kent State

Advertisement

ROUND PICK. WE’LL BE PULLING FOR HIM. THE DRAFT STARTS THURSDAY, APRIL 23RD. CYCLE IN. WOMEN LOST NEARLY THEIR ENTIRE ROSTER THURSDAY. THEY GOT ONE BACK. MAYA BABBITT IS COMING OVER FROM KENT STATE. SHE LED THAT TEAM AT 16 POINTS PE

Advertisement

Iowa State women’s basketball team adds transfer guard from Kent State

Updated: 10:40 PM CDT Apr 9, 2026

Editorial Standards

Advertisement

Iowa State got a strong start on its 2026 transfer class Thursday.Kent State guard Mya Babbitt announced her commitment to Iowa State.Babbitt, a 5’8″ guard from Papillion, Nebraska, has been a two-year starter for the Golden Flashes and earned second-team All-MAC honors in 2025-26 after averaging 16.1 points and 4.0 rebounds per game. She also set the Kent State record for 3-pointers in a season as a sophomore, making 83 3-pointers at a 41.5% clip.Babbitt is the first incoming transfer to announce her commitment to Iowa State this offseason. She will have one year of eligibility remaining.The Cyclones are tasked with replacing nearly the entire roster from 2025-26 after nine players entered the transfer portal.Senior-to-be Arianna Jackson has announced her return, as has reserve guard Freya Jensen. Iowa State also brings in highly touted recruit Macy Comito. Comito led Carlisle High School to its first state title this winter.» Subscribe to KCCI’s YouTube page» Download the free KCCI app to get updates on the go: Apple | Google Play

Iowa State got a strong start on its 2026 transfer class Thursday.

Advertisement

Kent State guard Mya Babbitt announced her commitment to Iowa State.

Babbitt, a 5’8″ guard from Papillion, Nebraska, has been a two-year starter for the Golden Flashes and earned second-team All-MAC honors in 2025-26 after averaging 16.1 points and 4.0 rebounds per game. She also set the Kent State record for 3-pointers in a season as a sophomore, making 83 3-pointers at a 41.5% clip.

This content is imported from Twitter.
You may be able to find the same content in another format, or you may be able to find more information, at their web site.

Advertisement

Babbitt is the first incoming transfer to announce her commitment to Iowa State this offseason. She will have one year of eligibility remaining.

The Cyclones are tasked with replacing nearly the entire roster from 2025-26 after nine players entered the transfer portal.

Senior-to-be Arianna Jackson has announced her return, as has reserve guard Freya Jensen. Iowa State also brings in highly touted recruit Macy Comito. Comito led Carlisle High School to its first state title this winter.

» Subscribe to KCCI’s YouTube page

» Download the free KCCI app to get updates on the go: Apple | Google Play

Advertisement
Advertisement

`;
}

function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}

function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

Advertisement

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}

function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}

var location = { zip: window.DEFAULT_ZIPCODE };

try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}

Advertisement

var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;

if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);

if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.kcci.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.kcci.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}

Advertisement

function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;

var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}

var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}

var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}

var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}

Advertisement

var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;

if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);

Advertisement

for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex

`;
}

function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}

function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

Advertisement

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}

function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}

var location = { zip: window.DEFAULT_ZIPCODE };

Advertisement

try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}

var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;

if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);

Advertisement

if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.kcci.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘sidelist-weather’, “https://www.kcci.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}

function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;

var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}

var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}

var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}

Advertisement

var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}

var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;

Advertisement

if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);

for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex

Loading more articles…



Source link

Advertisement
Continue Reading

Iowa

Where new NFL Draft grades from The Athletic have Iowa players landing

Published

on

Where new NFL Draft grades from The Athletic have Iowa players landing


play

The NFL Draft is two weeks away, and new prospect grades for more than 50 Iowa college and high school football players have been released.

Here is what to know about the 2026 NFL Draft and a breakdown of the draft projections for Iowa players, according to The Athletic’s “The Beast,” its annual comprehensive NFL Draft scouting guide.

Advertisement

When is the 2026 NFL draft?

The 2026 NFL draft will begin with the first round on Thursday, April 23. Rounds 2 and 3 occur the following day, and the draft will conclude on its third day with Rounds 4-7 on Saturday, April 25.

Pittsburgh — home of the Steelers — will host the 2026 NFL draft. 

How did The Athletic grade Iowa college football players ahead of the 2026 NFL draft?

The Athletic’s “The Beast” report included rankings of players from Iowa, Iowa State, Northern Iowa, Drake, Grand View and Upper Iowa.

  • Gennings Dunker, guard: No. 5 out of 159 players at his position
    • Grade: 3rd round projection
  • Logan Jones, center: No. 3 out of 78 players at his position
    • Grade: 3rd-4th round projection
  • Max Llewellyn, defensive end: No. 18 out of 270 players at his position
    • Grade: 4th round projection
  • Beau Stephens, guard: No. 11 out of 159 players at his position
    • Grade: 4th-5th round projection
  • TJ Hall, cornerback: No. 24 out of 318 players at his position
    • Grade: 6th round projection
  • Kaden Wetjen, wide receiver: No. 30 out of 380 players at his position
    • Grade: 6th round projection
  • Karson Sharar, linebacker: No. 24 out of 243 players at his position
    • Grade: 7th round projection
  • Drew Stevens, kicker: No. 3 out of 40 players at his position
    • Grade: 7th round-free agent projection

  • Mark Gronowski, quarterback: No.17 out of 99 players at his position
    • Grade: 7th round-free agent projection
  • Xavier Nwankpa, safety: No. 23 out of 271 players at his position
    • Grade: 7th round-free agent projection
  • Bryant Worrell, long snapper: No. 20 out of 48 players at his position
  • Hayden Large, tight end: No. 33 out of 156 players at his position
  • Aaron Graves, defensive tackle: No. 67 out of 249 players at his position
  • Ethan Hurkett, defensive end: No. 84 out of 270 players at his position
  • Jonah Pace, defensive tackle: No. 84 out of 249 players at his position
  • Seth Anderson, wide receiver: No. 87 out of 380 players at his position,
  • Jacob Gill, wide receiver: No. 106 out of 380 players at his position
  • Bryce George, guard: No. 107 out of 159 players at his position
  • Sam Phillips, wide receiver: No. 118 out of 380 players at his position,
  • Shahid Barros, cornerback: No. 195 out of 318 players at his position
  • Derek Anderson, tight end: No. 104 out of 156 players at his position
  • Blake Anderson, offensive tackle: No. 109 out of 146 players at his position
  • Bill Jackson, running back: No. 111 out of 213 players at his position
  • Mo Olowo, safety: No. 122 out of 271 players at his position
  • Caleb Frazer, linebacker: No. 177 out of 243 players at his position
  • Tucker Langenberg, linebacker: No. 193 out of 243 players at his position
  • Jonathan Cabral-Martin, cornerback: No. 198 out of 318 players at his position
  • Domonique Orange, defensive tackle: No. 6 out of 249 players at his position
    • Grade: 2nd-3rd round projection
  • Tyler Perkins, punter: No. 13 out of 40 players at his position
  • James Neal III, offensive tackle: No. 27 out of 146 players at his position
  • Jim Bonifas, center: No. 27 out of 78 players at his position
  • Tyler Miller, offensive tackle: No. 53 out of 146 players at his position
  • Tamatoa McDonough, defensive end: No. 56 out of 270 players at his position
  • Dylan Barrett, guard: No. 65 out of 159 players at his position
  • Tyler Moore, tight end: No. 76 out of 156 players at his position
  • Cannon Butler, defensive end: No. 101 out of 270 players at his position
  • Tyler Maro, offensive tackle: No. 128 out of 146 players at his position
  • Eli Green, wide receiver: No. 185 out of 380 players at his position
  • Myles Mendesoon, defensive end: No. 205 out of 270 players at his position

Drake Bulldogs

Advertisement
  • Brett Welsing, long snapper: No. 17 out of 48 players at his position

Grand View Vikings

  • Jackson Waring, quarterback: No. 53 out of 99 players at his position
  • John Argo, linebacker: No. 56 out of 243 players at his position

Upper Iowa Peacocks

  • Mante Morrow, wide receiver: No. 142 out of 380 players at his position

Iowa natives playing elsewhere

These Iowa high school players finished playing college football outside the state but still earned spots in The Athletic’s “The Beast” draft guide.

  • Kadyn Proctor (Alabama, Southeast Polk), offensive tackle: No. 4 out of 146 players at his position
    • Grade: 1st-2nd round projection
  • Eli Raridon (Notre Dame, Valley), tight end: No. 9 out of 156 players at his position
    • Grade: 4th round projection
  • Mosai Newsom (South Dakota, Waverly-Shell Rock), defensive tackle: No. 93 out of 249 players at his position
  • Nate Ewell (South Dakota, Waterloo West), linebacker: No. 88 out of 243 players at his position,
  • Henry Lutovsky (Nebraska, Mount Pleasant), guard: No. 29 out of 159 players at his position

  • Jase Bauer (UT Martin, Ankeny), quarterback: No. 51 out of 99 players at his position
  • Harrison Waylee (Virginia, Urbandale), running back: No. 80 out of 213 players at his position
  • Noah Fenske (Southern Illinois, New Hampton), center: No. 26 out of 78 players at his position
  • TJ Bollers (California, Clear Creek Amana), defensive tackle: No. 60 out of 249 players at his position
  • Carter Hewitt (Illinois, South Hamilton), defensive tackle: No. 156 out of 249 players at his position

How to watch the 2026 NFL draft

Live coverage of the NFL draft can be found on ESPN, ESPN2, ESPN Deportes and the NFL Network. Coverage is also available on NFL+, ESPN Select, ESPN Unlimited and Fubo TV.

  • Thursday, April 23: Round 1 starts at 7 p.m. CT
  • Friday, April 24: Round 2 and Round 3 start at 6 p.m. CT
  • Saturday, April 25: Rounds 4-7 start at 11 a.m. CT

Watch the NFL Draft on ESPN+

Cooper Worth is a service/trending reporter for the Des Moines Register. Reach him at cworth@gannett.com or follow him on X @CooperAWorth.



Source link

Continue Reading

Iowa

Iowa lawmakers advance bill to support sexual assault survivors

Published

on

Iowa lawmakers advance bill to support sexual assault survivors


House File 705 would fund nonprofit sexual assault forensic exam centers, aiming to improve care and evidence collection for survivors.

Advertisement

Iowa lawmakers advance bill to support sexual assault survivors

House File 705 would fund nonprofit sexual assault forensic exam centers, aiming to improve care and evidence collection for survivors.

Advertisement

COMPLAINT. HE’S SCHEDULED TO APPEAR IN COURT ON APRIL 17TH, LESS THAN TWO WEEKS REMAIN IN THE LEGISLATIVE SESSION HERE IN IOWA AS WE TAKE A LIVE LOOK FROM THE STATEHOUSE IN DOWNTOWN DES MOINES TODAY, A BILL TO EXPAND SERVICES FOR SEXUAL ASSAULT SURVIVORS IS MOVING FORWARD. HOUSE FILE 705 WOULD CREATE A GRANT PROGRAM TO SUPPORT NONPROFIT SEXUAL ASSAULT FORENSIC EXAM CENTERS ACROSS IOWA. SUPPORTERS SAY THE FUNDING WOULD HELP ENSURE VICTIMS HAVE ACCESS TO SPECIALIZED CARE AND EVIDENCE COLLECTION SERVICES. WHEN TYPICALLY OUR VICTIMS DON’T FEEL SEEN, THEY DON’T FEEL HEARD AND THEY DON’T FEEL RELIEVED TO JUST KNOW THAT TO MAKE IT THIS FAR, THE COMMUNITY DOES SEE THEM AND HEAR THEM. AND YOU KNOW, WE NEED YOUR HELP TO GET STARTED SO THAT WE CAN ENSURE THAT THOSE SERVICES ARE DELIVERABLE. YOU KNOW, WE CAN BUILD IT, BUT WE NEED WE NEED TO KEEP ACCESS OPEN AND AVAILABLE TO THEM BY BEING ABLE TO PROVIDE THAT. SO AND THE BILL PASSED

Advertisement

Iowa lawmakers advance bill to support sexual assault survivors

House File 705 would fund nonprofit sexual assault forensic exam centers, aiming to improve care and evidence collection for survivors.

Updated: 9:29 PM CDT Apr 8, 2026

Editorial Standards

Advertisement

Iowa lawmakers are advancing House File 705, a bill that would create a grant program to support nonprofit sexual assault forensic exam centers across the state. The bill passed a House subcommittee today and now heads to a full committee for further debate and a vote. It would require the attorney general’s office to contract with an Iowa-based nonprofit specializing in caring for survivors of sexual abuse or assault. Shannon Knudsen, who founded the S.A.F.E. Center of Iowa, says the funding would help ensure victims have access to specialized care and evidence collection services. “We need your help to get started so that we can ensure that those services are deliverable,” Knudsen said to lawmakers. “We can build it, but we need to keep access open and available to them.” Because this bill was filed under Appropriations, it did not have to pass by specific deadlines to stay active. The current session is set to end on April 21, which is when per diem ends for lawmakers. A statewide budget has to be passed by both chambers before lawmakers gavel out.

Iowa lawmakers are advancing House File 705, a bill that would create a grant program to support nonprofit sexual assault forensic exam centers across the state.

Advertisement

The bill passed a House subcommittee today and now heads to a full committee for further debate and a vote. It would require the attorney general’s office to contract with an Iowa-based nonprofit specializing in caring for survivors of sexual abuse or assault.

Shannon Knudsen, who founded the S.A.F.E. Center of Iowa, says the funding would help ensure victims have access to specialized care and evidence collection services.

“We need your help to get started so that we can ensure that those services are deliverable,” Knudsen said to lawmakers. “We can build it, but we need to keep access open and available to them.”

Advertisement

Because this bill was filed under Appropriations, it did not have to pass by specific deadlines to stay active. The current session is set to end on April 21, which is when per diem ends for lawmakers. A statewide budget has to be passed by both chambers before lawmakers gavel out.

Advertisement

`;
}

function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}

function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

Advertisement

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}

function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}

var location = { zip: window.DEFAULT_ZIPCODE };

Advertisement

try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}

var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;

if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);

Advertisement

if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.kcci.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.kcci.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}

function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;

var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}

var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}

var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}

Advertisement

var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}

var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;

Advertisement

if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);

for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex

`;
}

function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}

function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;

Advertisement

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}

function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}

Advertisement

var location = { zip: window.DEFAULT_ZIPCODE };

try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}

var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;

if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

Advertisement

var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);

if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.kcci.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘sidelist-weather’, “https://www.kcci.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}

function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;

var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}

var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}

Advertisement

var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}

var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}

var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

Advertisement

function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;

if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);

for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex

Loading more articles…



Source link

Advertisement
Continue Reading
Advertisement

Trending